Skip to main content

cudarc/cusolver/sys/
mod.rs

1#![cfg_attr(feature = "no-std", no_std)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(dead_code)]
5#[cfg(feature = "no-std")]
6extern crate alloc;
7#[cfg(feature = "no-std")]
8extern crate no_std_compat as std;
9pub use self::cudaDataType_t as cudaDataType;
10pub use self::libraryPropertyType_t as libraryPropertyType;
11#[cfg(any(
12    feature = "cuda-11070",
13    feature = "cuda-11080",
14    feature = "cuda-12000",
15    feature = "cuda-12010",
16    feature = "cuda-12020",
17    feature = "cuda-12030",
18    feature = "cuda-12040",
19    feature = "cuda-12050",
20    feature = "cuda-12060",
21    feature = "cuda-12080",
22    feature = "cuda-12090",
23    feature = "cuda-13000",
24    feature = "cuda-13010"
25))]
26pub type FILE = _IO_FILE;
27#[cfg(any(
28    feature = "cuda-11070",
29    feature = "cuda-11080",
30    feature = "cuda-12000",
31    feature = "cuda-12010",
32    feature = "cuda-12020",
33    feature = "cuda-12030",
34    feature = "cuda-12040",
35    feature = "cuda-12050",
36    feature = "cuda-12060",
37    feature = "cuda-12080",
38    feature = "cuda-12090",
39    feature = "cuda-13000",
40    feature = "cuda-13010"
41))]
42pub type _IO_lock_t = ::core::ffi::c_void;
43#[cfg(any(
44    feature = "cuda-11070",
45    feature = "cuda-11080",
46    feature = "cuda-12000",
47    feature = "cuda-12010",
48    feature = "cuda-12020",
49    feature = "cuda-12030",
50    feature = "cuda-12040",
51    feature = "cuda-12050",
52    feature = "cuda-12060",
53    feature = "cuda-12080",
54    feature = "cuda-12090",
55    feature = "cuda-13000",
56    feature = "cuda-13010"
57))]
58pub type __off64_t = ::core::ffi::c_long;
59#[cfg(any(
60    feature = "cuda-11070",
61    feature = "cuda-11080",
62    feature = "cuda-12000",
63    feature = "cuda-12010",
64    feature = "cuda-12020",
65    feature = "cuda-12030",
66    feature = "cuda-12040",
67    feature = "cuda-12050",
68    feature = "cuda-12060",
69    feature = "cuda-12080",
70    feature = "cuda-12090",
71    feature = "cuda-13000",
72    feature = "cuda-13010"
73))]
74pub type __off_t = ::core::ffi::c_long;
75pub type csrqrInfo_t = *mut csrqrInfo;
76pub type cuComplex = cuFloatComplex;
77pub type cuDoubleComplex = double2;
78pub type cuFloatComplex = float2;
79pub type cudaLibMgGrid_t = *mut ::core::ffi::c_void;
80pub type cudaLibMgMatrixDesc_t = *mut ::core::ffi::c_void;
81pub type cudaStream_t = *mut CUstream_st;
82pub type cusolverDnHandle_t = *mut cusolverDnContext;
83pub type cusolverDnIRSInfos_t = *mut cusolverDnIRSInfos;
84pub type cusolverDnIRSParams_t = *mut cusolverDnIRSParams;
85#[cfg(any(
86    feature = "cuda-11070",
87    feature = "cuda-11080",
88    feature = "cuda-12000",
89    feature = "cuda-12010",
90    feature = "cuda-12020",
91    feature = "cuda-12030",
92    feature = "cuda-12040",
93    feature = "cuda-12050",
94    feature = "cuda-12060",
95    feature = "cuda-12080",
96    feature = "cuda-12090",
97    feature = "cuda-13000",
98    feature = "cuda-13010"
99))]
100pub type cusolverDnLoggerCallback_t = ::core::option::Option<
101    unsafe extern "C" fn(
102        logLevel: ::core::ffi::c_int,
103        functionName: *const ::core::ffi::c_char,
104        message: *const ::core::ffi::c_char,
105    ),
106>;
107pub type cusolverDnParams_t = *mut cusolverDnParams;
108pub type cusolverRfHandle_t = *mut cusolverRfCommon;
109pub type cusolverSpHandle_t = *mut cusolverSpContext;
110pub type cusolver_int_t = ::core::ffi::c_int;
111pub type cusparseMatDescr_t = *mut cusparseMatDescr;
112pub type gesvdjInfo_t = *mut gesvdjInfo;
113pub type syevjInfo_t = *mut syevjInfo;
114#[repr(u32)]
115#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
116pub enum cublasDiagType_t {
117    CUBLAS_DIAG_NON_UNIT = 0,
118    CUBLAS_DIAG_UNIT = 1,
119}
120#[repr(u32)]
121#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
122pub enum cublasFillMode_t {
123    CUBLAS_FILL_MODE_LOWER = 0,
124    CUBLAS_FILL_MODE_UPPER = 1,
125    CUBLAS_FILL_MODE_FULL = 2,
126}
127#[repr(u32)]
128#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
129pub enum cublasOperation_t {
130    CUBLAS_OP_N = 0,
131    CUBLAS_OP_T = 1,
132    CUBLAS_OP_C = 2,
133    CUBLAS_OP_CONJG = 3,
134}
135#[repr(u32)]
136#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
137pub enum cublasSideMode_t {
138    CUBLAS_SIDE_LEFT = 0,
139    CUBLAS_SIDE_RIGHT = 1,
140}
141#[cfg(any(
142    feature = "cuda-11040",
143    feature = "cuda-11050",
144    feature = "cuda-11060",
145    feature = "cuda-11070"
146))]
147#[repr(u32)]
148#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
149pub enum cudaDataType_t {
150    CUDA_R_16F = 2,
151    CUDA_C_16F = 6,
152    CUDA_R_16BF = 14,
153    CUDA_C_16BF = 15,
154    CUDA_R_32F = 0,
155    CUDA_C_32F = 4,
156    CUDA_R_64F = 1,
157    CUDA_C_64F = 5,
158    CUDA_R_4I = 16,
159    CUDA_C_4I = 17,
160    CUDA_R_4U = 18,
161    CUDA_C_4U = 19,
162    CUDA_R_8I = 3,
163    CUDA_C_8I = 7,
164    CUDA_R_8U = 8,
165    CUDA_C_8U = 9,
166    CUDA_R_16I = 20,
167    CUDA_C_16I = 21,
168    CUDA_R_16U = 22,
169    CUDA_C_16U = 23,
170    CUDA_R_32I = 10,
171    CUDA_C_32I = 11,
172    CUDA_R_32U = 12,
173    CUDA_C_32U = 13,
174    CUDA_R_64I = 24,
175    CUDA_C_64I = 25,
176    CUDA_R_64U = 26,
177    CUDA_C_64U = 27,
178}
179#[cfg(any(
180    feature = "cuda-11080",
181    feature = "cuda-12000",
182    feature = "cuda-12010",
183    feature = "cuda-12020",
184    feature = "cuda-12030",
185    feature = "cuda-12040",
186    feature = "cuda-12050",
187    feature = "cuda-12060"
188))]
189#[repr(u32)]
190#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
191pub enum cudaDataType_t {
192    CUDA_R_16F = 2,
193    CUDA_C_16F = 6,
194    CUDA_R_16BF = 14,
195    CUDA_C_16BF = 15,
196    CUDA_R_32F = 0,
197    CUDA_C_32F = 4,
198    CUDA_R_64F = 1,
199    CUDA_C_64F = 5,
200    CUDA_R_4I = 16,
201    CUDA_C_4I = 17,
202    CUDA_R_4U = 18,
203    CUDA_C_4U = 19,
204    CUDA_R_8I = 3,
205    CUDA_C_8I = 7,
206    CUDA_R_8U = 8,
207    CUDA_C_8U = 9,
208    CUDA_R_16I = 20,
209    CUDA_C_16I = 21,
210    CUDA_R_16U = 22,
211    CUDA_C_16U = 23,
212    CUDA_R_32I = 10,
213    CUDA_C_32I = 11,
214    CUDA_R_32U = 12,
215    CUDA_C_32U = 13,
216    CUDA_R_64I = 24,
217    CUDA_C_64I = 25,
218    CUDA_R_64U = 26,
219    CUDA_C_64U = 27,
220    CUDA_R_8F_E4M3 = 28,
221    CUDA_R_8F_E5M2 = 29,
222}
223#[cfg(any(
224    feature = "cuda-12080",
225    feature = "cuda-12090",
226    feature = "cuda-13000",
227    feature = "cuda-13010"
228))]
229#[repr(u32)]
230#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
231pub enum cudaDataType_t {
232    CUDA_R_16F = 2,
233    CUDA_C_16F = 6,
234    CUDA_R_16BF = 14,
235    CUDA_C_16BF = 15,
236    CUDA_R_32F = 0,
237    CUDA_C_32F = 4,
238    CUDA_R_64F = 1,
239    CUDA_C_64F = 5,
240    CUDA_R_4I = 16,
241    CUDA_C_4I = 17,
242    CUDA_R_4U = 18,
243    CUDA_C_4U = 19,
244    CUDA_R_8I = 3,
245    CUDA_C_8I = 7,
246    CUDA_R_8U = 8,
247    CUDA_C_8U = 9,
248    CUDA_R_16I = 20,
249    CUDA_C_16I = 21,
250    CUDA_R_16U = 22,
251    CUDA_C_16U = 23,
252    CUDA_R_32I = 10,
253    CUDA_C_32I = 11,
254    CUDA_R_32U = 12,
255    CUDA_C_32U = 13,
256    CUDA_R_64I = 24,
257    CUDA_C_64I = 25,
258    CUDA_R_64U = 26,
259    CUDA_C_64U = 27,
260    CUDA_R_8F_E4M3 = 28,
261    CUDA_R_8F_E5M2 = 29,
262    CUDA_R_8F_UE8M0 = 30,
263    CUDA_R_6F_E2M3 = 31,
264    CUDA_R_6F_E3M2 = 32,
265    CUDA_R_4F_E2M1 = 33,
266}
267#[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
268#[repr(u32)]
269#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
270pub enum cudaEmulationStrategy_t {
271    CUDA_EMULATION_STRATEGY_DEFAULT = 0,
272    CUDA_EMULATION_STRATEGY_PERFORMANT = 1,
273    CUDA_EMULATION_STRATEGY_EAGER = 2,
274}
275#[cfg(any(feature = "cuda-11040"))]
276#[repr(u32)]
277#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
278pub enum cusolverAlgMode_t {
279    CUSOLVER_ALG_0 = 0,
280    CUSOLVER_ALG_1 = 1,
281}
282#[cfg(any(
283    feature = "cuda-11050",
284    feature = "cuda-11060",
285    feature = "cuda-11070",
286    feature = "cuda-11080",
287    feature = "cuda-12000",
288    feature = "cuda-12010",
289    feature = "cuda-12020",
290    feature = "cuda-12030",
291    feature = "cuda-12040",
292    feature = "cuda-12050",
293    feature = "cuda-12060",
294    feature = "cuda-12080",
295    feature = "cuda-12090",
296    feature = "cuda-13000",
297    feature = "cuda-13010"
298))]
299#[repr(u32)]
300#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
301pub enum cusolverAlgMode_t {
302    CUSOLVER_ALG_0 = 0,
303    CUSOLVER_ALG_1 = 1,
304    CUSOLVER_ALG_2 = 2,
305}
306#[cfg(any(
307    feature = "cuda-12020",
308    feature = "cuda-12030",
309    feature = "cuda-12040",
310    feature = "cuda-12050",
311    feature = "cuda-12060",
312    feature = "cuda-12080",
313    feature = "cuda-12090",
314    feature = "cuda-13000",
315    feature = "cuda-13010"
316))]
317#[repr(u32)]
318#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
319pub enum cusolverDeterministicMode_t {
320    CUSOLVER_DETERMINISTIC_RESULTS = 1,
321    CUSOLVER_ALLOW_NON_DETERMINISTIC_RESULTS = 2,
322}
323#[repr(u32)]
324#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
325pub enum cusolverDirectMode_t {
326    CUBLAS_DIRECT_FORWARD = 0,
327    CUBLAS_DIRECT_BACKWARD = 1,
328}
329#[cfg(any(feature = "cuda-11040"))]
330#[repr(u32)]
331#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
332pub enum cusolverDnFunction_t {
333    CUSOLVERDN_GETRF = 0,
334}
335#[cfg(any(
336    feature = "cuda-11050",
337    feature = "cuda-11060",
338    feature = "cuda-11070",
339    feature = "cuda-11080",
340    feature = "cuda-12000",
341    feature = "cuda-12010",
342    feature = "cuda-12020",
343    feature = "cuda-12030",
344    feature = "cuda-12040",
345    feature = "cuda-12050",
346    feature = "cuda-12060",
347    feature = "cuda-12080",
348    feature = "cuda-12090"
349))]
350#[repr(u32)]
351#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
352pub enum cusolverDnFunction_t {
353    CUSOLVERDN_GETRF = 0,
354    CUSOLVERDN_POTRF = 1,
355}
356#[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
357#[repr(u32)]
358#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
359pub enum cusolverDnFunction_t {
360    CUSOLVERDN_GETRF = 0,
361    CUSOLVERDN_POTRF = 1,
362    CUSOLVERDN_SYEVBATCHED = 2,
363}
364#[repr(u32)]
365#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
366pub enum cusolverEigMode_t {
367    CUSOLVER_EIG_MODE_NOVECTOR = 0,
368    CUSOLVER_EIG_MODE_VECTOR = 1,
369}
370#[repr(u32)]
371#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
372pub enum cusolverEigRange_t {
373    CUSOLVER_EIG_RANGE_ALL = 1001,
374    CUSOLVER_EIG_RANGE_I = 1002,
375    CUSOLVER_EIG_RANGE_V = 1003,
376}
377#[repr(u32)]
378#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
379pub enum cusolverEigType_t {
380    CUSOLVER_EIG_TYPE_1 = 1,
381    CUSOLVER_EIG_TYPE_2 = 2,
382    CUSOLVER_EIG_TYPE_3 = 3,
383}
384#[repr(u32)]
385#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
386pub enum cusolverIRSRefinement_t {
387    CUSOLVER_IRS_REFINE_NOT_SET = 1100,
388    CUSOLVER_IRS_REFINE_NONE = 1101,
389    CUSOLVER_IRS_REFINE_CLASSICAL = 1102,
390    CUSOLVER_IRS_REFINE_CLASSICAL_GMRES = 1103,
391    CUSOLVER_IRS_REFINE_GMRES = 1104,
392    CUSOLVER_IRS_REFINE_GMRES_GMRES = 1105,
393    CUSOLVER_IRS_REFINE_GMRES_NOPCOND = 1106,
394    CUSOLVER_PREC_DD = 1150,
395    CUSOLVER_PREC_SS = 1151,
396    CUSOLVER_PREC_SHT = 1152,
397}
398#[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
399#[repr(u32)]
400#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
401pub enum cusolverMathMode_t {
402    CUSOLVER_DEFAULT_MATH = 1,
403    CUSOLVER_FP32_EMULATED_BF16X9_MATH = 2,
404}
405#[repr(u32)]
406#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
407pub enum cusolverNorm_t {
408    CUSOLVER_INF_NORM = 104,
409    CUSOLVER_MAX_NORM = 105,
410    CUSOLVER_ONE_NORM = 106,
411    CUSOLVER_FRO_NORM = 107,
412}
413#[repr(u32)]
414#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
415pub enum cusolverPrecType_t {
416    CUSOLVER_R_8I = 1201,
417    CUSOLVER_R_8U = 1202,
418    CUSOLVER_R_64F = 1203,
419    CUSOLVER_R_32F = 1204,
420    CUSOLVER_R_16F = 1205,
421    CUSOLVER_R_16BF = 1206,
422    CUSOLVER_R_TF32 = 1207,
423    CUSOLVER_R_AP = 1208,
424    CUSOLVER_C_8I = 1211,
425    CUSOLVER_C_8U = 1212,
426    CUSOLVER_C_64F = 1213,
427    CUSOLVER_C_32F = 1214,
428    CUSOLVER_C_16F = 1215,
429    CUSOLVER_C_16BF = 1216,
430    CUSOLVER_C_TF32 = 1217,
431    CUSOLVER_C_AP = 1218,
432}
433#[repr(u32)]
434#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
435pub enum cusolverRfFactorization_t {
436    CUSOLVERRF_FACTORIZATION_ALG0 = 0,
437    CUSOLVERRF_FACTORIZATION_ALG1 = 1,
438    CUSOLVERRF_FACTORIZATION_ALG2 = 2,
439}
440#[repr(u32)]
441#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
442pub enum cusolverRfMatrixFormat_t {
443    CUSOLVERRF_MATRIX_FORMAT_CSR = 0,
444    CUSOLVERRF_MATRIX_FORMAT_CSC = 1,
445}
446#[repr(u32)]
447#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
448pub enum cusolverRfNumericBoostReport_t {
449    CUSOLVERRF_NUMERIC_BOOST_NOT_USED = 0,
450    CUSOLVERRF_NUMERIC_BOOST_USED = 1,
451}
452#[repr(u32)]
453#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
454pub enum cusolverRfResetValuesFastMode_t {
455    CUSOLVERRF_RESET_VALUES_FAST_MODE_OFF = 0,
456    CUSOLVERRF_RESET_VALUES_FAST_MODE_ON = 1,
457}
458#[repr(u32)]
459#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
460pub enum cusolverRfTriangularSolve_t {
461    CUSOLVERRF_TRIANGULAR_SOLVE_ALG1 = 1,
462    CUSOLVERRF_TRIANGULAR_SOLVE_ALG2 = 2,
463    CUSOLVERRF_TRIANGULAR_SOLVE_ALG3 = 3,
464}
465#[repr(u32)]
466#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
467pub enum cusolverRfUnitDiagonal_t {
468    CUSOLVERRF_UNIT_DIAGONAL_STORED_L = 0,
469    CUSOLVERRF_UNIT_DIAGONAL_STORED_U = 1,
470    CUSOLVERRF_UNIT_DIAGONAL_ASSUMED_L = 2,
471    CUSOLVERRF_UNIT_DIAGONAL_ASSUMED_U = 3,
472}
473#[repr(u32)]
474#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
475pub enum cusolverStatus_t {
476    CUSOLVER_STATUS_SUCCESS = 0,
477    CUSOLVER_STATUS_NOT_INITIALIZED = 1,
478    CUSOLVER_STATUS_ALLOC_FAILED = 2,
479    CUSOLVER_STATUS_INVALID_VALUE = 3,
480    CUSOLVER_STATUS_ARCH_MISMATCH = 4,
481    CUSOLVER_STATUS_MAPPING_ERROR = 5,
482    CUSOLVER_STATUS_EXECUTION_FAILED = 6,
483    CUSOLVER_STATUS_INTERNAL_ERROR = 7,
484    CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED = 8,
485    CUSOLVER_STATUS_NOT_SUPPORTED = 9,
486    CUSOLVER_STATUS_ZERO_PIVOT = 10,
487    CUSOLVER_STATUS_INVALID_LICENSE = 11,
488    CUSOLVER_STATUS_IRS_PARAMS_NOT_INITIALIZED = 12,
489    CUSOLVER_STATUS_IRS_PARAMS_INVALID = 13,
490    CUSOLVER_STATUS_IRS_PARAMS_INVALID_PREC = 14,
491    CUSOLVER_STATUS_IRS_PARAMS_INVALID_REFINE = 15,
492    CUSOLVER_STATUS_IRS_PARAMS_INVALID_MAXITER = 16,
493    CUSOLVER_STATUS_IRS_INTERNAL_ERROR = 20,
494    CUSOLVER_STATUS_IRS_NOT_SUPPORTED = 21,
495    CUSOLVER_STATUS_IRS_OUT_OF_RANGE = 22,
496    CUSOLVER_STATUS_IRS_NRHS_NOT_SUPPORTED_FOR_REFINE_GMRES = 23,
497    CUSOLVER_STATUS_IRS_INFOS_NOT_INITIALIZED = 25,
498    CUSOLVER_STATUS_IRS_INFOS_NOT_DESTROYED = 26,
499    CUSOLVER_STATUS_IRS_MATRIX_SINGULAR = 30,
500    CUSOLVER_STATUS_INVALID_WORKSPACE = 31,
501}
502#[repr(u32)]
503#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
504pub enum cusolverStorevMode_t {
505    CUBLAS_STOREV_COLUMNWISE = 0,
506    CUBLAS_STOREV_ROWWISE = 1,
507}
508#[repr(u32)]
509#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
510pub enum libraryPropertyType_t {
511    MAJOR_VERSION = 0,
512    MINOR_VERSION = 1,
513    PATCH_LEVEL = 2,
514}
515#[repr(C)]
516#[derive(Debug, Copy, Clone)]
517pub struct CUstream_st {
518    _unused: [u8; 0],
519}
520#[cfg(any(
521    feature = "cuda-11070",
522    feature = "cuda-11080",
523    feature = "cuda-12000",
524    feature = "cuda-12010",
525    feature = "cuda-12020",
526    feature = "cuda-12030",
527    feature = "cuda-12040",
528    feature = "cuda-12050",
529    feature = "cuda-12060",
530    feature = "cuda-12080",
531    feature = "cuda-12090",
532    feature = "cuda-13000",
533    feature = "cuda-13010"
534))]
535#[repr(C)]
536#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
537pub struct _IO_FILE {
538    pub _flags: ::core::ffi::c_int,
539    pub _IO_read_ptr: *mut ::core::ffi::c_char,
540    pub _IO_read_end: *mut ::core::ffi::c_char,
541    pub _IO_read_base: *mut ::core::ffi::c_char,
542    pub _IO_write_base: *mut ::core::ffi::c_char,
543    pub _IO_write_ptr: *mut ::core::ffi::c_char,
544    pub _IO_write_end: *mut ::core::ffi::c_char,
545    pub _IO_buf_base: *mut ::core::ffi::c_char,
546    pub _IO_buf_end: *mut ::core::ffi::c_char,
547    pub _IO_save_base: *mut ::core::ffi::c_char,
548    pub _IO_backup_base: *mut ::core::ffi::c_char,
549    pub _IO_save_end: *mut ::core::ffi::c_char,
550    pub _markers: *mut _IO_marker,
551    pub _chain: *mut _IO_FILE,
552    pub _fileno: ::core::ffi::c_int,
553    pub _flags2: ::core::ffi::c_int,
554    pub _old_offset: __off_t,
555    pub _cur_column: ::core::ffi::c_ushort,
556    pub _vtable_offset: ::core::ffi::c_schar,
557    pub _shortbuf: [::core::ffi::c_char; 1usize],
558    pub _lock: *mut _IO_lock_t,
559    pub _offset: __off64_t,
560    pub _codecvt: *mut _IO_codecvt,
561    pub _wide_data: *mut _IO_wide_data,
562    pub _freeres_list: *mut _IO_FILE,
563    pub _freeres_buf: *mut ::core::ffi::c_void,
564    pub __pad5: usize,
565    pub _mode: ::core::ffi::c_int,
566    pub _unused2: [::core::ffi::c_char; 20usize],
567}
568#[cfg(any(
569    feature = "cuda-11070",
570    feature = "cuda-11080",
571    feature = "cuda-12000",
572    feature = "cuda-12010",
573    feature = "cuda-12020",
574    feature = "cuda-12030",
575    feature = "cuda-12040",
576    feature = "cuda-12050",
577    feature = "cuda-12060",
578    feature = "cuda-12080",
579    feature = "cuda-12090",
580    feature = "cuda-13000",
581    feature = "cuda-13010"
582))]
583#[repr(C)]
584#[derive(Debug, Copy, Clone)]
585pub struct _IO_codecvt {
586    _unused: [u8; 0],
587}
588#[cfg(any(
589    feature = "cuda-11070",
590    feature = "cuda-11080",
591    feature = "cuda-12000",
592    feature = "cuda-12010",
593    feature = "cuda-12020",
594    feature = "cuda-12030",
595    feature = "cuda-12040",
596    feature = "cuda-12050",
597    feature = "cuda-12060",
598    feature = "cuda-12080",
599    feature = "cuda-12090",
600    feature = "cuda-13000",
601    feature = "cuda-13010"
602))]
603#[repr(C)]
604#[derive(Debug, Copy, Clone)]
605pub struct _IO_marker {
606    _unused: [u8; 0],
607}
608#[cfg(any(
609    feature = "cuda-11070",
610    feature = "cuda-11080",
611    feature = "cuda-12000",
612    feature = "cuda-12010",
613    feature = "cuda-12020",
614    feature = "cuda-12030",
615    feature = "cuda-12040",
616    feature = "cuda-12050",
617    feature = "cuda-12060",
618    feature = "cuda-12080",
619    feature = "cuda-12090",
620    feature = "cuda-13000",
621    feature = "cuda-13010"
622))]
623#[repr(C)]
624#[derive(Debug, Copy, Clone)]
625pub struct _IO_wide_data {
626    _unused: [u8; 0],
627}
628#[repr(C)]
629#[derive(Debug, Copy, Clone)]
630pub struct csrqrInfo {
631    _unused: [u8; 0],
632}
633#[repr(C)]
634#[derive(Debug, Copy, Clone)]
635pub struct cusolverDnContext {
636    _unused: [u8; 0],
637}
638#[repr(C)]
639#[derive(Debug, Copy, Clone)]
640pub struct cusolverDnIRSInfos {
641    _unused: [u8; 0],
642}
643#[repr(C)]
644#[derive(Debug, Copy, Clone)]
645pub struct cusolverDnIRSParams {
646    _unused: [u8; 0],
647}
648#[repr(C)]
649#[derive(Debug, Copy, Clone)]
650pub struct cusolverDnParams {
651    _unused: [u8; 0],
652}
653#[repr(C)]
654#[derive(Debug, Copy, Clone)]
655pub struct cusolverRfCommon {
656    _unused: [u8; 0],
657}
658#[repr(C)]
659#[derive(Debug, Copy, Clone)]
660pub struct cusolverSpContext {
661    _unused: [u8; 0],
662}
663#[repr(C)]
664#[derive(Debug, Copy, Clone)]
665pub struct cusparseMatDescr {
666    _unused: [u8; 0],
667}
668#[repr(C)]
669#[repr(align(16))]
670#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
671pub struct double2 {
672    pub x: f64,
673    pub y: f64,
674}
675#[repr(C)]
676#[repr(align(8))]
677#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
678pub struct float2 {
679    pub x: f32,
680    pub y: f32,
681}
682#[repr(C)]
683#[derive(Debug, Copy, Clone)]
684pub struct gesvdjInfo {
685    _unused: [u8; 0],
686}
687#[repr(C)]
688#[derive(Debug, Copy, Clone)]
689pub struct syevjInfo {
690    _unused: [u8; 0],
691}
692impl cublasOperation_t {
693    pub const CUBLAS_OP_HERMITAN: cublasOperation_t = cublasOperation_t::CUBLAS_OP_C;
694}
695#[cfg(any(
696    feature = "cuda-12080",
697    feature = "cuda-12090",
698    feature = "cuda-13000",
699    feature = "cuda-13010"
700))]
701impl cudaDataType_t {
702    pub const CUDA_R_8F_UE4M3: cudaDataType_t = cudaDataType_t::CUDA_R_8F_E4M3;
703}
704#[cfg(not(feature = "dynamic-loading"))]
705extern "C" {
706    pub fn cusolverDnCCgels(
707        handle: cusolverDnHandle_t,
708        m: cusolver_int_t,
709        n: cusolver_int_t,
710        nrhs: cusolver_int_t,
711        dA: *mut cuComplex,
712        ldda: cusolver_int_t,
713        dB: *mut cuComplex,
714        lddb: cusolver_int_t,
715        dX: *mut cuComplex,
716        lddx: cusolver_int_t,
717        dWorkspace: *mut ::core::ffi::c_void,
718        lwork_bytes: usize,
719        iter: *mut cusolver_int_t,
720        d_info: *mut cusolver_int_t,
721    ) -> cusolverStatus_t;
722    pub fn cusolverDnCCgels_bufferSize(
723        handle: cusolverDnHandle_t,
724        m: cusolver_int_t,
725        n: cusolver_int_t,
726        nrhs: cusolver_int_t,
727        dA: *mut cuComplex,
728        ldda: cusolver_int_t,
729        dB: *mut cuComplex,
730        lddb: cusolver_int_t,
731        dX: *mut cuComplex,
732        lddx: cusolver_int_t,
733        dWorkspace: *mut ::core::ffi::c_void,
734        lwork_bytes: *mut usize,
735    ) -> cusolverStatus_t;
736    pub fn cusolverDnCCgesv(
737        handle: cusolverDnHandle_t,
738        n: cusolver_int_t,
739        nrhs: cusolver_int_t,
740        dA: *mut cuComplex,
741        ldda: cusolver_int_t,
742        dipiv: *mut cusolver_int_t,
743        dB: *mut cuComplex,
744        lddb: cusolver_int_t,
745        dX: *mut cuComplex,
746        lddx: cusolver_int_t,
747        dWorkspace: *mut ::core::ffi::c_void,
748        lwork_bytes: usize,
749        iter: *mut cusolver_int_t,
750        d_info: *mut cusolver_int_t,
751    ) -> cusolverStatus_t;
752    pub fn cusolverDnCCgesv_bufferSize(
753        handle: cusolverDnHandle_t,
754        n: cusolver_int_t,
755        nrhs: cusolver_int_t,
756        dA: *mut cuComplex,
757        ldda: cusolver_int_t,
758        dipiv: *mut cusolver_int_t,
759        dB: *mut cuComplex,
760        lddb: cusolver_int_t,
761        dX: *mut cuComplex,
762        lddx: cusolver_int_t,
763        dWorkspace: *mut ::core::ffi::c_void,
764        lwork_bytes: *mut usize,
765    ) -> cusolverStatus_t;
766    pub fn cusolverDnCEgels(
767        handle: cusolverDnHandle_t,
768        m: cusolver_int_t,
769        n: cusolver_int_t,
770        nrhs: cusolver_int_t,
771        dA: *mut cuComplex,
772        ldda: cusolver_int_t,
773        dB: *mut cuComplex,
774        lddb: cusolver_int_t,
775        dX: *mut cuComplex,
776        lddx: cusolver_int_t,
777        dWorkspace: *mut ::core::ffi::c_void,
778        lwork_bytes: usize,
779        iter: *mut cusolver_int_t,
780        d_info: *mut cusolver_int_t,
781    ) -> cusolverStatus_t;
782    pub fn cusolverDnCEgels_bufferSize(
783        handle: cusolverDnHandle_t,
784        m: cusolver_int_t,
785        n: cusolver_int_t,
786        nrhs: cusolver_int_t,
787        dA: *mut cuComplex,
788        ldda: cusolver_int_t,
789        dB: *mut cuComplex,
790        lddb: cusolver_int_t,
791        dX: *mut cuComplex,
792        lddx: cusolver_int_t,
793        dWorkspace: *mut ::core::ffi::c_void,
794        lwork_bytes: *mut usize,
795    ) -> cusolverStatus_t;
796    pub fn cusolverDnCEgesv(
797        handle: cusolverDnHandle_t,
798        n: cusolver_int_t,
799        nrhs: cusolver_int_t,
800        dA: *mut cuComplex,
801        ldda: cusolver_int_t,
802        dipiv: *mut cusolver_int_t,
803        dB: *mut cuComplex,
804        lddb: cusolver_int_t,
805        dX: *mut cuComplex,
806        lddx: cusolver_int_t,
807        dWorkspace: *mut ::core::ffi::c_void,
808        lwork_bytes: usize,
809        iter: *mut cusolver_int_t,
810        d_info: *mut cusolver_int_t,
811    ) -> cusolverStatus_t;
812    pub fn cusolverDnCEgesv_bufferSize(
813        handle: cusolverDnHandle_t,
814        n: cusolver_int_t,
815        nrhs: cusolver_int_t,
816        dA: *mut cuComplex,
817        ldda: cusolver_int_t,
818        dipiv: *mut cusolver_int_t,
819        dB: *mut cuComplex,
820        lddb: cusolver_int_t,
821        dX: *mut cuComplex,
822        lddx: cusolver_int_t,
823        dWorkspace: *mut ::core::ffi::c_void,
824        lwork_bytes: *mut usize,
825    ) -> cusolverStatus_t;
826    pub fn cusolverDnCKgels(
827        handle: cusolverDnHandle_t,
828        m: cusolver_int_t,
829        n: cusolver_int_t,
830        nrhs: cusolver_int_t,
831        dA: *mut cuComplex,
832        ldda: cusolver_int_t,
833        dB: *mut cuComplex,
834        lddb: cusolver_int_t,
835        dX: *mut cuComplex,
836        lddx: cusolver_int_t,
837        dWorkspace: *mut ::core::ffi::c_void,
838        lwork_bytes: usize,
839        iter: *mut cusolver_int_t,
840        d_info: *mut cusolver_int_t,
841    ) -> cusolverStatus_t;
842    pub fn cusolverDnCKgels_bufferSize(
843        handle: cusolverDnHandle_t,
844        m: cusolver_int_t,
845        n: cusolver_int_t,
846        nrhs: cusolver_int_t,
847        dA: *mut cuComplex,
848        ldda: cusolver_int_t,
849        dB: *mut cuComplex,
850        lddb: cusolver_int_t,
851        dX: *mut cuComplex,
852        lddx: cusolver_int_t,
853        dWorkspace: *mut ::core::ffi::c_void,
854        lwork_bytes: *mut usize,
855    ) -> cusolverStatus_t;
856    pub fn cusolverDnCKgesv(
857        handle: cusolverDnHandle_t,
858        n: cusolver_int_t,
859        nrhs: cusolver_int_t,
860        dA: *mut cuComplex,
861        ldda: cusolver_int_t,
862        dipiv: *mut cusolver_int_t,
863        dB: *mut cuComplex,
864        lddb: cusolver_int_t,
865        dX: *mut cuComplex,
866        lddx: cusolver_int_t,
867        dWorkspace: *mut ::core::ffi::c_void,
868        lwork_bytes: usize,
869        iter: *mut cusolver_int_t,
870        d_info: *mut cusolver_int_t,
871    ) -> cusolverStatus_t;
872    pub fn cusolverDnCKgesv_bufferSize(
873        handle: cusolverDnHandle_t,
874        n: cusolver_int_t,
875        nrhs: cusolver_int_t,
876        dA: *mut cuComplex,
877        ldda: cusolver_int_t,
878        dipiv: *mut cusolver_int_t,
879        dB: *mut cuComplex,
880        lddb: cusolver_int_t,
881        dX: *mut cuComplex,
882        lddx: cusolver_int_t,
883        dWorkspace: *mut ::core::ffi::c_void,
884        lwork_bytes: *mut usize,
885    ) -> cusolverStatus_t;
886    pub fn cusolverDnCYgels(
887        handle: cusolverDnHandle_t,
888        m: cusolver_int_t,
889        n: cusolver_int_t,
890        nrhs: cusolver_int_t,
891        dA: *mut cuComplex,
892        ldda: cusolver_int_t,
893        dB: *mut cuComplex,
894        lddb: cusolver_int_t,
895        dX: *mut cuComplex,
896        lddx: cusolver_int_t,
897        dWorkspace: *mut ::core::ffi::c_void,
898        lwork_bytes: usize,
899        iter: *mut cusolver_int_t,
900        d_info: *mut cusolver_int_t,
901    ) -> cusolverStatus_t;
902    pub fn cusolverDnCYgels_bufferSize(
903        handle: cusolverDnHandle_t,
904        m: cusolver_int_t,
905        n: cusolver_int_t,
906        nrhs: cusolver_int_t,
907        dA: *mut cuComplex,
908        ldda: cusolver_int_t,
909        dB: *mut cuComplex,
910        lddb: cusolver_int_t,
911        dX: *mut cuComplex,
912        lddx: cusolver_int_t,
913        dWorkspace: *mut ::core::ffi::c_void,
914        lwork_bytes: *mut usize,
915    ) -> cusolverStatus_t;
916    pub fn cusolverDnCYgesv(
917        handle: cusolverDnHandle_t,
918        n: cusolver_int_t,
919        nrhs: cusolver_int_t,
920        dA: *mut cuComplex,
921        ldda: cusolver_int_t,
922        dipiv: *mut cusolver_int_t,
923        dB: *mut cuComplex,
924        lddb: cusolver_int_t,
925        dX: *mut cuComplex,
926        lddx: cusolver_int_t,
927        dWorkspace: *mut ::core::ffi::c_void,
928        lwork_bytes: usize,
929        iter: *mut cusolver_int_t,
930        d_info: *mut cusolver_int_t,
931    ) -> cusolverStatus_t;
932    pub fn cusolverDnCYgesv_bufferSize(
933        handle: cusolverDnHandle_t,
934        n: cusolver_int_t,
935        nrhs: cusolver_int_t,
936        dA: *mut cuComplex,
937        ldda: cusolver_int_t,
938        dipiv: *mut cusolver_int_t,
939        dB: *mut cuComplex,
940        lddb: cusolver_int_t,
941        dX: *mut cuComplex,
942        lddx: cusolver_int_t,
943        dWorkspace: *mut ::core::ffi::c_void,
944        lwork_bytes: *mut usize,
945    ) -> cusolverStatus_t;
946    pub fn cusolverDnCgebrd(
947        handle: cusolverDnHandle_t,
948        m: ::core::ffi::c_int,
949        n: ::core::ffi::c_int,
950        A: *mut cuComplex,
951        lda: ::core::ffi::c_int,
952        D: *mut f32,
953        E: *mut f32,
954        TAUQ: *mut cuComplex,
955        TAUP: *mut cuComplex,
956        Work: *mut cuComplex,
957        Lwork: ::core::ffi::c_int,
958        devInfo: *mut ::core::ffi::c_int,
959    ) -> cusolverStatus_t;
960    pub fn cusolverDnCgebrd_bufferSize(
961        handle: cusolverDnHandle_t,
962        m: ::core::ffi::c_int,
963        n: ::core::ffi::c_int,
964        Lwork: *mut ::core::ffi::c_int,
965    ) -> cusolverStatus_t;
966    pub fn cusolverDnCgeqrf(
967        handle: cusolverDnHandle_t,
968        m: ::core::ffi::c_int,
969        n: ::core::ffi::c_int,
970        A: *mut cuComplex,
971        lda: ::core::ffi::c_int,
972        TAU: *mut cuComplex,
973        Workspace: *mut cuComplex,
974        Lwork: ::core::ffi::c_int,
975        devInfo: *mut ::core::ffi::c_int,
976    ) -> cusolverStatus_t;
977    pub fn cusolverDnCgeqrf_bufferSize(
978        handle: cusolverDnHandle_t,
979        m: ::core::ffi::c_int,
980        n: ::core::ffi::c_int,
981        A: *mut cuComplex,
982        lda: ::core::ffi::c_int,
983        lwork: *mut ::core::ffi::c_int,
984    ) -> cusolverStatus_t;
985    pub fn cusolverDnCgesvd(
986        handle: cusolverDnHandle_t,
987        jobu: ::core::ffi::c_schar,
988        jobvt: ::core::ffi::c_schar,
989        m: ::core::ffi::c_int,
990        n: ::core::ffi::c_int,
991        A: *mut cuComplex,
992        lda: ::core::ffi::c_int,
993        S: *mut f32,
994        U: *mut cuComplex,
995        ldu: ::core::ffi::c_int,
996        VT: *mut cuComplex,
997        ldvt: ::core::ffi::c_int,
998        work: *mut cuComplex,
999        lwork: ::core::ffi::c_int,
1000        rwork: *mut f32,
1001        info: *mut ::core::ffi::c_int,
1002    ) -> cusolverStatus_t;
1003    pub fn cusolverDnCgesvd_bufferSize(
1004        handle: cusolverDnHandle_t,
1005        m: ::core::ffi::c_int,
1006        n: ::core::ffi::c_int,
1007        lwork: *mut ::core::ffi::c_int,
1008    ) -> cusolverStatus_t;
1009    pub fn cusolverDnCgesvdaStridedBatched(
1010        handle: cusolverDnHandle_t,
1011        jobz: cusolverEigMode_t,
1012        rank: ::core::ffi::c_int,
1013        m: ::core::ffi::c_int,
1014        n: ::core::ffi::c_int,
1015        d_A: *const cuComplex,
1016        lda: ::core::ffi::c_int,
1017        strideA: ::core::ffi::c_longlong,
1018        d_S: *mut f32,
1019        strideS: ::core::ffi::c_longlong,
1020        d_U: *mut cuComplex,
1021        ldu: ::core::ffi::c_int,
1022        strideU: ::core::ffi::c_longlong,
1023        d_V: *mut cuComplex,
1024        ldv: ::core::ffi::c_int,
1025        strideV: ::core::ffi::c_longlong,
1026        d_work: *mut cuComplex,
1027        lwork: ::core::ffi::c_int,
1028        d_info: *mut ::core::ffi::c_int,
1029        h_R_nrmF: *mut f64,
1030        batchSize: ::core::ffi::c_int,
1031    ) -> cusolverStatus_t;
1032    pub fn cusolverDnCgesvdaStridedBatched_bufferSize(
1033        handle: cusolverDnHandle_t,
1034        jobz: cusolverEigMode_t,
1035        rank: ::core::ffi::c_int,
1036        m: ::core::ffi::c_int,
1037        n: ::core::ffi::c_int,
1038        d_A: *const cuComplex,
1039        lda: ::core::ffi::c_int,
1040        strideA: ::core::ffi::c_longlong,
1041        d_S: *const f32,
1042        strideS: ::core::ffi::c_longlong,
1043        d_U: *const cuComplex,
1044        ldu: ::core::ffi::c_int,
1045        strideU: ::core::ffi::c_longlong,
1046        d_V: *const cuComplex,
1047        ldv: ::core::ffi::c_int,
1048        strideV: ::core::ffi::c_longlong,
1049        lwork: *mut ::core::ffi::c_int,
1050        batchSize: ::core::ffi::c_int,
1051    ) -> cusolverStatus_t;
1052    pub fn cusolverDnCgesvdj(
1053        handle: cusolverDnHandle_t,
1054        jobz: cusolverEigMode_t,
1055        econ: ::core::ffi::c_int,
1056        m: ::core::ffi::c_int,
1057        n: ::core::ffi::c_int,
1058        A: *mut cuComplex,
1059        lda: ::core::ffi::c_int,
1060        S: *mut f32,
1061        U: *mut cuComplex,
1062        ldu: ::core::ffi::c_int,
1063        V: *mut cuComplex,
1064        ldv: ::core::ffi::c_int,
1065        work: *mut cuComplex,
1066        lwork: ::core::ffi::c_int,
1067        info: *mut ::core::ffi::c_int,
1068        params: gesvdjInfo_t,
1069    ) -> cusolverStatus_t;
1070    pub fn cusolverDnCgesvdjBatched(
1071        handle: cusolverDnHandle_t,
1072        jobz: cusolverEigMode_t,
1073        m: ::core::ffi::c_int,
1074        n: ::core::ffi::c_int,
1075        A: *mut cuComplex,
1076        lda: ::core::ffi::c_int,
1077        S: *mut f32,
1078        U: *mut cuComplex,
1079        ldu: ::core::ffi::c_int,
1080        V: *mut cuComplex,
1081        ldv: ::core::ffi::c_int,
1082        work: *mut cuComplex,
1083        lwork: ::core::ffi::c_int,
1084        info: *mut ::core::ffi::c_int,
1085        params: gesvdjInfo_t,
1086        batchSize: ::core::ffi::c_int,
1087    ) -> cusolverStatus_t;
1088    pub fn cusolverDnCgesvdjBatched_bufferSize(
1089        handle: cusolverDnHandle_t,
1090        jobz: cusolverEigMode_t,
1091        m: ::core::ffi::c_int,
1092        n: ::core::ffi::c_int,
1093        A: *const cuComplex,
1094        lda: ::core::ffi::c_int,
1095        S: *const f32,
1096        U: *const cuComplex,
1097        ldu: ::core::ffi::c_int,
1098        V: *const cuComplex,
1099        ldv: ::core::ffi::c_int,
1100        lwork: *mut ::core::ffi::c_int,
1101        params: gesvdjInfo_t,
1102        batchSize: ::core::ffi::c_int,
1103    ) -> cusolverStatus_t;
1104    pub fn cusolverDnCgesvdj_bufferSize(
1105        handle: cusolverDnHandle_t,
1106        jobz: cusolverEigMode_t,
1107        econ: ::core::ffi::c_int,
1108        m: ::core::ffi::c_int,
1109        n: ::core::ffi::c_int,
1110        A: *const cuComplex,
1111        lda: ::core::ffi::c_int,
1112        S: *const f32,
1113        U: *const cuComplex,
1114        ldu: ::core::ffi::c_int,
1115        V: *const cuComplex,
1116        ldv: ::core::ffi::c_int,
1117        lwork: *mut ::core::ffi::c_int,
1118        params: gesvdjInfo_t,
1119    ) -> cusolverStatus_t;
1120    pub fn cusolverDnCgetrf(
1121        handle: cusolverDnHandle_t,
1122        m: ::core::ffi::c_int,
1123        n: ::core::ffi::c_int,
1124        A: *mut cuComplex,
1125        lda: ::core::ffi::c_int,
1126        Workspace: *mut cuComplex,
1127        devIpiv: *mut ::core::ffi::c_int,
1128        devInfo: *mut ::core::ffi::c_int,
1129    ) -> cusolverStatus_t;
1130    pub fn cusolverDnCgetrf_bufferSize(
1131        handle: cusolverDnHandle_t,
1132        m: ::core::ffi::c_int,
1133        n: ::core::ffi::c_int,
1134        A: *mut cuComplex,
1135        lda: ::core::ffi::c_int,
1136        Lwork: *mut ::core::ffi::c_int,
1137    ) -> cusolverStatus_t;
1138    pub fn cusolverDnCgetrs(
1139        handle: cusolverDnHandle_t,
1140        trans: cublasOperation_t,
1141        n: ::core::ffi::c_int,
1142        nrhs: ::core::ffi::c_int,
1143        A: *const cuComplex,
1144        lda: ::core::ffi::c_int,
1145        devIpiv: *const ::core::ffi::c_int,
1146        B: *mut cuComplex,
1147        ldb: ::core::ffi::c_int,
1148        devInfo: *mut ::core::ffi::c_int,
1149    ) -> cusolverStatus_t;
1150    pub fn cusolverDnCheevd(
1151        handle: cusolverDnHandle_t,
1152        jobz: cusolverEigMode_t,
1153        uplo: cublasFillMode_t,
1154        n: ::core::ffi::c_int,
1155        A: *mut cuComplex,
1156        lda: ::core::ffi::c_int,
1157        W: *mut f32,
1158        work: *mut cuComplex,
1159        lwork: ::core::ffi::c_int,
1160        info: *mut ::core::ffi::c_int,
1161    ) -> cusolverStatus_t;
1162    pub fn cusolverDnCheevd_bufferSize(
1163        handle: cusolverDnHandle_t,
1164        jobz: cusolverEigMode_t,
1165        uplo: cublasFillMode_t,
1166        n: ::core::ffi::c_int,
1167        A: *const cuComplex,
1168        lda: ::core::ffi::c_int,
1169        W: *const f32,
1170        lwork: *mut ::core::ffi::c_int,
1171    ) -> cusolverStatus_t;
1172    pub fn cusolverDnCheevdx(
1173        handle: cusolverDnHandle_t,
1174        jobz: cusolverEigMode_t,
1175        range: cusolverEigRange_t,
1176        uplo: cublasFillMode_t,
1177        n: ::core::ffi::c_int,
1178        A: *mut cuComplex,
1179        lda: ::core::ffi::c_int,
1180        vl: f32,
1181        vu: f32,
1182        il: ::core::ffi::c_int,
1183        iu: ::core::ffi::c_int,
1184        meig: *mut ::core::ffi::c_int,
1185        W: *mut f32,
1186        work: *mut cuComplex,
1187        lwork: ::core::ffi::c_int,
1188        info: *mut ::core::ffi::c_int,
1189    ) -> cusolverStatus_t;
1190    pub fn cusolverDnCheevdx_bufferSize(
1191        handle: cusolverDnHandle_t,
1192        jobz: cusolverEigMode_t,
1193        range: cusolverEigRange_t,
1194        uplo: cublasFillMode_t,
1195        n: ::core::ffi::c_int,
1196        A: *const cuComplex,
1197        lda: ::core::ffi::c_int,
1198        vl: f32,
1199        vu: f32,
1200        il: ::core::ffi::c_int,
1201        iu: ::core::ffi::c_int,
1202        meig: *mut ::core::ffi::c_int,
1203        W: *const f32,
1204        lwork: *mut ::core::ffi::c_int,
1205    ) -> cusolverStatus_t;
1206    pub fn cusolverDnCheevj(
1207        handle: cusolverDnHandle_t,
1208        jobz: cusolverEigMode_t,
1209        uplo: cublasFillMode_t,
1210        n: ::core::ffi::c_int,
1211        A: *mut cuComplex,
1212        lda: ::core::ffi::c_int,
1213        W: *mut f32,
1214        work: *mut cuComplex,
1215        lwork: ::core::ffi::c_int,
1216        info: *mut ::core::ffi::c_int,
1217        params: syevjInfo_t,
1218    ) -> cusolverStatus_t;
1219    pub fn cusolverDnCheevjBatched(
1220        handle: cusolverDnHandle_t,
1221        jobz: cusolverEigMode_t,
1222        uplo: cublasFillMode_t,
1223        n: ::core::ffi::c_int,
1224        A: *mut cuComplex,
1225        lda: ::core::ffi::c_int,
1226        W: *mut f32,
1227        work: *mut cuComplex,
1228        lwork: ::core::ffi::c_int,
1229        info: *mut ::core::ffi::c_int,
1230        params: syevjInfo_t,
1231        batchSize: ::core::ffi::c_int,
1232    ) -> cusolverStatus_t;
1233    pub fn cusolverDnCheevjBatched_bufferSize(
1234        handle: cusolverDnHandle_t,
1235        jobz: cusolverEigMode_t,
1236        uplo: cublasFillMode_t,
1237        n: ::core::ffi::c_int,
1238        A: *const cuComplex,
1239        lda: ::core::ffi::c_int,
1240        W: *const f32,
1241        lwork: *mut ::core::ffi::c_int,
1242        params: syevjInfo_t,
1243        batchSize: ::core::ffi::c_int,
1244    ) -> cusolverStatus_t;
1245    pub fn cusolverDnCheevj_bufferSize(
1246        handle: cusolverDnHandle_t,
1247        jobz: cusolverEigMode_t,
1248        uplo: cublasFillMode_t,
1249        n: ::core::ffi::c_int,
1250        A: *const cuComplex,
1251        lda: ::core::ffi::c_int,
1252        W: *const f32,
1253        lwork: *mut ::core::ffi::c_int,
1254        params: syevjInfo_t,
1255    ) -> cusolverStatus_t;
1256    pub fn cusolverDnChegvd(
1257        handle: cusolverDnHandle_t,
1258        itype: cusolverEigType_t,
1259        jobz: cusolverEigMode_t,
1260        uplo: cublasFillMode_t,
1261        n: ::core::ffi::c_int,
1262        A: *mut cuComplex,
1263        lda: ::core::ffi::c_int,
1264        B: *mut cuComplex,
1265        ldb: ::core::ffi::c_int,
1266        W: *mut f32,
1267        work: *mut cuComplex,
1268        lwork: ::core::ffi::c_int,
1269        info: *mut ::core::ffi::c_int,
1270    ) -> cusolverStatus_t;
1271    pub fn cusolverDnChegvd_bufferSize(
1272        handle: cusolverDnHandle_t,
1273        itype: cusolverEigType_t,
1274        jobz: cusolverEigMode_t,
1275        uplo: cublasFillMode_t,
1276        n: ::core::ffi::c_int,
1277        A: *const cuComplex,
1278        lda: ::core::ffi::c_int,
1279        B: *const cuComplex,
1280        ldb: ::core::ffi::c_int,
1281        W: *const f32,
1282        lwork: *mut ::core::ffi::c_int,
1283    ) -> cusolverStatus_t;
1284    pub fn cusolverDnChegvdx(
1285        handle: cusolverDnHandle_t,
1286        itype: cusolverEigType_t,
1287        jobz: cusolverEigMode_t,
1288        range: cusolverEigRange_t,
1289        uplo: cublasFillMode_t,
1290        n: ::core::ffi::c_int,
1291        A: *mut cuComplex,
1292        lda: ::core::ffi::c_int,
1293        B: *mut cuComplex,
1294        ldb: ::core::ffi::c_int,
1295        vl: f32,
1296        vu: f32,
1297        il: ::core::ffi::c_int,
1298        iu: ::core::ffi::c_int,
1299        meig: *mut ::core::ffi::c_int,
1300        W: *mut f32,
1301        work: *mut cuComplex,
1302        lwork: ::core::ffi::c_int,
1303        info: *mut ::core::ffi::c_int,
1304    ) -> cusolverStatus_t;
1305    pub fn cusolverDnChegvdx_bufferSize(
1306        handle: cusolverDnHandle_t,
1307        itype: cusolverEigType_t,
1308        jobz: cusolverEigMode_t,
1309        range: cusolverEigRange_t,
1310        uplo: cublasFillMode_t,
1311        n: ::core::ffi::c_int,
1312        A: *const cuComplex,
1313        lda: ::core::ffi::c_int,
1314        B: *const cuComplex,
1315        ldb: ::core::ffi::c_int,
1316        vl: f32,
1317        vu: f32,
1318        il: ::core::ffi::c_int,
1319        iu: ::core::ffi::c_int,
1320        meig: *mut ::core::ffi::c_int,
1321        W: *const f32,
1322        lwork: *mut ::core::ffi::c_int,
1323    ) -> cusolverStatus_t;
1324    pub fn cusolverDnChegvj(
1325        handle: cusolverDnHandle_t,
1326        itype: cusolverEigType_t,
1327        jobz: cusolverEigMode_t,
1328        uplo: cublasFillMode_t,
1329        n: ::core::ffi::c_int,
1330        A: *mut cuComplex,
1331        lda: ::core::ffi::c_int,
1332        B: *mut cuComplex,
1333        ldb: ::core::ffi::c_int,
1334        W: *mut f32,
1335        work: *mut cuComplex,
1336        lwork: ::core::ffi::c_int,
1337        info: *mut ::core::ffi::c_int,
1338        params: syevjInfo_t,
1339    ) -> cusolverStatus_t;
1340    pub fn cusolverDnChegvj_bufferSize(
1341        handle: cusolverDnHandle_t,
1342        itype: cusolverEigType_t,
1343        jobz: cusolverEigMode_t,
1344        uplo: cublasFillMode_t,
1345        n: ::core::ffi::c_int,
1346        A: *const cuComplex,
1347        lda: ::core::ffi::c_int,
1348        B: *const cuComplex,
1349        ldb: ::core::ffi::c_int,
1350        W: *const f32,
1351        lwork: *mut ::core::ffi::c_int,
1352        params: syevjInfo_t,
1353    ) -> cusolverStatus_t;
1354    pub fn cusolverDnChetrd(
1355        handle: cusolverDnHandle_t,
1356        uplo: cublasFillMode_t,
1357        n: ::core::ffi::c_int,
1358        A: *mut cuComplex,
1359        lda: ::core::ffi::c_int,
1360        d: *mut f32,
1361        e: *mut f32,
1362        tau: *mut cuComplex,
1363        work: *mut cuComplex,
1364        lwork: ::core::ffi::c_int,
1365        info: *mut ::core::ffi::c_int,
1366    ) -> cusolverStatus_t;
1367    pub fn cusolverDnChetrd_bufferSize(
1368        handle: cusolverDnHandle_t,
1369        uplo: cublasFillMode_t,
1370        n: ::core::ffi::c_int,
1371        A: *const cuComplex,
1372        lda: ::core::ffi::c_int,
1373        d: *const f32,
1374        e: *const f32,
1375        tau: *const cuComplex,
1376        lwork: *mut ::core::ffi::c_int,
1377    ) -> cusolverStatus_t;
1378    pub fn cusolverDnClaswp(
1379        handle: cusolverDnHandle_t,
1380        n: ::core::ffi::c_int,
1381        A: *mut cuComplex,
1382        lda: ::core::ffi::c_int,
1383        k1: ::core::ffi::c_int,
1384        k2: ::core::ffi::c_int,
1385        devIpiv: *const ::core::ffi::c_int,
1386        incx: ::core::ffi::c_int,
1387    ) -> cusolverStatus_t;
1388    pub fn cusolverDnClauum(
1389        handle: cusolverDnHandle_t,
1390        uplo: cublasFillMode_t,
1391        n: ::core::ffi::c_int,
1392        A: *mut cuComplex,
1393        lda: ::core::ffi::c_int,
1394        work: *mut cuComplex,
1395        lwork: ::core::ffi::c_int,
1396        devInfo: *mut ::core::ffi::c_int,
1397    ) -> cusolverStatus_t;
1398    pub fn cusolverDnClauum_bufferSize(
1399        handle: cusolverDnHandle_t,
1400        uplo: cublasFillMode_t,
1401        n: ::core::ffi::c_int,
1402        A: *mut cuComplex,
1403        lda: ::core::ffi::c_int,
1404        lwork: *mut ::core::ffi::c_int,
1405    ) -> cusolverStatus_t;
1406    pub fn cusolverDnCpotrf(
1407        handle: cusolverDnHandle_t,
1408        uplo: cublasFillMode_t,
1409        n: ::core::ffi::c_int,
1410        A: *mut cuComplex,
1411        lda: ::core::ffi::c_int,
1412        Workspace: *mut cuComplex,
1413        Lwork: ::core::ffi::c_int,
1414        devInfo: *mut ::core::ffi::c_int,
1415    ) -> cusolverStatus_t;
1416    pub fn cusolverDnCpotrfBatched(
1417        handle: cusolverDnHandle_t,
1418        uplo: cublasFillMode_t,
1419        n: ::core::ffi::c_int,
1420        Aarray: *mut *mut cuComplex,
1421        lda: ::core::ffi::c_int,
1422        infoArray: *mut ::core::ffi::c_int,
1423        batchSize: ::core::ffi::c_int,
1424    ) -> cusolverStatus_t;
1425    pub fn cusolverDnCpotrf_bufferSize(
1426        handle: cusolverDnHandle_t,
1427        uplo: cublasFillMode_t,
1428        n: ::core::ffi::c_int,
1429        A: *mut cuComplex,
1430        lda: ::core::ffi::c_int,
1431        Lwork: *mut ::core::ffi::c_int,
1432    ) -> cusolverStatus_t;
1433    pub fn cusolverDnCpotri(
1434        handle: cusolverDnHandle_t,
1435        uplo: cublasFillMode_t,
1436        n: ::core::ffi::c_int,
1437        A: *mut cuComplex,
1438        lda: ::core::ffi::c_int,
1439        work: *mut cuComplex,
1440        lwork: ::core::ffi::c_int,
1441        devInfo: *mut ::core::ffi::c_int,
1442    ) -> cusolverStatus_t;
1443    pub fn cusolverDnCpotri_bufferSize(
1444        handle: cusolverDnHandle_t,
1445        uplo: cublasFillMode_t,
1446        n: ::core::ffi::c_int,
1447        A: *mut cuComplex,
1448        lda: ::core::ffi::c_int,
1449        lwork: *mut ::core::ffi::c_int,
1450    ) -> cusolverStatus_t;
1451    pub fn cusolverDnCpotrs(
1452        handle: cusolverDnHandle_t,
1453        uplo: cublasFillMode_t,
1454        n: ::core::ffi::c_int,
1455        nrhs: ::core::ffi::c_int,
1456        A: *const cuComplex,
1457        lda: ::core::ffi::c_int,
1458        B: *mut cuComplex,
1459        ldb: ::core::ffi::c_int,
1460        devInfo: *mut ::core::ffi::c_int,
1461    ) -> cusolverStatus_t;
1462    pub fn cusolverDnCpotrsBatched(
1463        handle: cusolverDnHandle_t,
1464        uplo: cublasFillMode_t,
1465        n: ::core::ffi::c_int,
1466        nrhs: ::core::ffi::c_int,
1467        A: *mut *mut cuComplex,
1468        lda: ::core::ffi::c_int,
1469        B: *mut *mut cuComplex,
1470        ldb: ::core::ffi::c_int,
1471        d_info: *mut ::core::ffi::c_int,
1472        batchSize: ::core::ffi::c_int,
1473    ) -> cusolverStatus_t;
1474    pub fn cusolverDnCreate(handle: *mut cusolverDnHandle_t) -> cusolverStatus_t;
1475    pub fn cusolverDnCreateGesvdjInfo(info: *mut gesvdjInfo_t) -> cusolverStatus_t;
1476    pub fn cusolverDnCreateParams(params: *mut cusolverDnParams_t) -> cusolverStatus_t;
1477    pub fn cusolverDnCreateSyevjInfo(info: *mut syevjInfo_t) -> cusolverStatus_t;
1478    pub fn cusolverDnCsytrf(
1479        handle: cusolverDnHandle_t,
1480        uplo: cublasFillMode_t,
1481        n: ::core::ffi::c_int,
1482        A: *mut cuComplex,
1483        lda: ::core::ffi::c_int,
1484        ipiv: *mut ::core::ffi::c_int,
1485        work: *mut cuComplex,
1486        lwork: ::core::ffi::c_int,
1487        info: *mut ::core::ffi::c_int,
1488    ) -> cusolverStatus_t;
1489    pub fn cusolverDnCsytrf_bufferSize(
1490        handle: cusolverDnHandle_t,
1491        n: ::core::ffi::c_int,
1492        A: *mut cuComplex,
1493        lda: ::core::ffi::c_int,
1494        lwork: *mut ::core::ffi::c_int,
1495    ) -> cusolverStatus_t;
1496    pub fn cusolverDnCsytri(
1497        handle: cusolverDnHandle_t,
1498        uplo: cublasFillMode_t,
1499        n: ::core::ffi::c_int,
1500        A: *mut cuComplex,
1501        lda: ::core::ffi::c_int,
1502        ipiv: *const ::core::ffi::c_int,
1503        work: *mut cuComplex,
1504        lwork: ::core::ffi::c_int,
1505        info: *mut ::core::ffi::c_int,
1506    ) -> cusolverStatus_t;
1507    pub fn cusolverDnCsytri_bufferSize(
1508        handle: cusolverDnHandle_t,
1509        uplo: cublasFillMode_t,
1510        n: ::core::ffi::c_int,
1511        A: *mut cuComplex,
1512        lda: ::core::ffi::c_int,
1513        ipiv: *const ::core::ffi::c_int,
1514        lwork: *mut ::core::ffi::c_int,
1515    ) -> cusolverStatus_t;
1516    pub fn cusolverDnCungbr(
1517        handle: cusolverDnHandle_t,
1518        side: cublasSideMode_t,
1519        m: ::core::ffi::c_int,
1520        n: ::core::ffi::c_int,
1521        k: ::core::ffi::c_int,
1522        A: *mut cuComplex,
1523        lda: ::core::ffi::c_int,
1524        tau: *const cuComplex,
1525        work: *mut cuComplex,
1526        lwork: ::core::ffi::c_int,
1527        info: *mut ::core::ffi::c_int,
1528    ) -> cusolverStatus_t;
1529    pub fn cusolverDnCungbr_bufferSize(
1530        handle: cusolverDnHandle_t,
1531        side: cublasSideMode_t,
1532        m: ::core::ffi::c_int,
1533        n: ::core::ffi::c_int,
1534        k: ::core::ffi::c_int,
1535        A: *const cuComplex,
1536        lda: ::core::ffi::c_int,
1537        tau: *const cuComplex,
1538        lwork: *mut ::core::ffi::c_int,
1539    ) -> cusolverStatus_t;
1540    pub fn cusolverDnCungqr(
1541        handle: cusolverDnHandle_t,
1542        m: ::core::ffi::c_int,
1543        n: ::core::ffi::c_int,
1544        k: ::core::ffi::c_int,
1545        A: *mut cuComplex,
1546        lda: ::core::ffi::c_int,
1547        tau: *const cuComplex,
1548        work: *mut cuComplex,
1549        lwork: ::core::ffi::c_int,
1550        info: *mut ::core::ffi::c_int,
1551    ) -> cusolverStatus_t;
1552    pub fn cusolverDnCungqr_bufferSize(
1553        handle: cusolverDnHandle_t,
1554        m: ::core::ffi::c_int,
1555        n: ::core::ffi::c_int,
1556        k: ::core::ffi::c_int,
1557        A: *const cuComplex,
1558        lda: ::core::ffi::c_int,
1559        tau: *const cuComplex,
1560        lwork: *mut ::core::ffi::c_int,
1561    ) -> cusolverStatus_t;
1562    pub fn cusolverDnCungtr(
1563        handle: cusolverDnHandle_t,
1564        uplo: cublasFillMode_t,
1565        n: ::core::ffi::c_int,
1566        A: *mut cuComplex,
1567        lda: ::core::ffi::c_int,
1568        tau: *const cuComplex,
1569        work: *mut cuComplex,
1570        lwork: ::core::ffi::c_int,
1571        info: *mut ::core::ffi::c_int,
1572    ) -> cusolverStatus_t;
1573    pub fn cusolverDnCungtr_bufferSize(
1574        handle: cusolverDnHandle_t,
1575        uplo: cublasFillMode_t,
1576        n: ::core::ffi::c_int,
1577        A: *const cuComplex,
1578        lda: ::core::ffi::c_int,
1579        tau: *const cuComplex,
1580        lwork: *mut ::core::ffi::c_int,
1581    ) -> cusolverStatus_t;
1582    pub fn cusolverDnCunmqr(
1583        handle: cusolverDnHandle_t,
1584        side: cublasSideMode_t,
1585        trans: cublasOperation_t,
1586        m: ::core::ffi::c_int,
1587        n: ::core::ffi::c_int,
1588        k: ::core::ffi::c_int,
1589        A: *const cuComplex,
1590        lda: ::core::ffi::c_int,
1591        tau: *const cuComplex,
1592        C: *mut cuComplex,
1593        ldc: ::core::ffi::c_int,
1594        work: *mut cuComplex,
1595        lwork: ::core::ffi::c_int,
1596        devInfo: *mut ::core::ffi::c_int,
1597    ) -> cusolverStatus_t;
1598    pub fn cusolverDnCunmqr_bufferSize(
1599        handle: cusolverDnHandle_t,
1600        side: cublasSideMode_t,
1601        trans: cublasOperation_t,
1602        m: ::core::ffi::c_int,
1603        n: ::core::ffi::c_int,
1604        k: ::core::ffi::c_int,
1605        A: *const cuComplex,
1606        lda: ::core::ffi::c_int,
1607        tau: *const cuComplex,
1608        C: *const cuComplex,
1609        ldc: ::core::ffi::c_int,
1610        lwork: *mut ::core::ffi::c_int,
1611    ) -> cusolverStatus_t;
1612    pub fn cusolverDnCunmtr(
1613        handle: cusolverDnHandle_t,
1614        side: cublasSideMode_t,
1615        uplo: cublasFillMode_t,
1616        trans: cublasOperation_t,
1617        m: ::core::ffi::c_int,
1618        n: ::core::ffi::c_int,
1619        A: *mut cuComplex,
1620        lda: ::core::ffi::c_int,
1621        tau: *mut cuComplex,
1622        C: *mut cuComplex,
1623        ldc: ::core::ffi::c_int,
1624        work: *mut cuComplex,
1625        lwork: ::core::ffi::c_int,
1626        info: *mut ::core::ffi::c_int,
1627    ) -> cusolverStatus_t;
1628    pub fn cusolverDnCunmtr_bufferSize(
1629        handle: cusolverDnHandle_t,
1630        side: cublasSideMode_t,
1631        uplo: cublasFillMode_t,
1632        trans: cublasOperation_t,
1633        m: ::core::ffi::c_int,
1634        n: ::core::ffi::c_int,
1635        A: *const cuComplex,
1636        lda: ::core::ffi::c_int,
1637        tau: *const cuComplex,
1638        C: *const cuComplex,
1639        ldc: ::core::ffi::c_int,
1640        lwork: *mut ::core::ffi::c_int,
1641    ) -> cusolverStatus_t;
1642    pub fn cusolverDnDBgels(
1643        handle: cusolverDnHandle_t,
1644        m: cusolver_int_t,
1645        n: cusolver_int_t,
1646        nrhs: cusolver_int_t,
1647        dA: *mut f64,
1648        ldda: cusolver_int_t,
1649        dB: *mut f64,
1650        lddb: cusolver_int_t,
1651        dX: *mut f64,
1652        lddx: cusolver_int_t,
1653        dWorkspace: *mut ::core::ffi::c_void,
1654        lwork_bytes: usize,
1655        iter: *mut cusolver_int_t,
1656        d_info: *mut cusolver_int_t,
1657    ) -> cusolverStatus_t;
1658    pub fn cusolverDnDBgels_bufferSize(
1659        handle: cusolverDnHandle_t,
1660        m: cusolver_int_t,
1661        n: cusolver_int_t,
1662        nrhs: cusolver_int_t,
1663        dA: *mut f64,
1664        ldda: cusolver_int_t,
1665        dB: *mut f64,
1666        lddb: cusolver_int_t,
1667        dX: *mut f64,
1668        lddx: cusolver_int_t,
1669        dWorkspace: *mut ::core::ffi::c_void,
1670        lwork_bytes: *mut usize,
1671    ) -> cusolverStatus_t;
1672    pub fn cusolverDnDBgesv(
1673        handle: cusolverDnHandle_t,
1674        n: cusolver_int_t,
1675        nrhs: cusolver_int_t,
1676        dA: *mut f64,
1677        ldda: cusolver_int_t,
1678        dipiv: *mut cusolver_int_t,
1679        dB: *mut f64,
1680        lddb: cusolver_int_t,
1681        dX: *mut f64,
1682        lddx: cusolver_int_t,
1683        dWorkspace: *mut ::core::ffi::c_void,
1684        lwork_bytes: usize,
1685        iter: *mut cusolver_int_t,
1686        d_info: *mut cusolver_int_t,
1687    ) -> cusolverStatus_t;
1688    pub fn cusolverDnDBgesv_bufferSize(
1689        handle: cusolverDnHandle_t,
1690        n: cusolver_int_t,
1691        nrhs: cusolver_int_t,
1692        dA: *mut f64,
1693        ldda: cusolver_int_t,
1694        dipiv: *mut cusolver_int_t,
1695        dB: *mut f64,
1696        lddb: cusolver_int_t,
1697        dX: *mut f64,
1698        lddx: cusolver_int_t,
1699        dWorkspace: *mut ::core::ffi::c_void,
1700        lwork_bytes: *mut usize,
1701    ) -> cusolverStatus_t;
1702    pub fn cusolverDnDDgels(
1703        handle: cusolverDnHandle_t,
1704        m: cusolver_int_t,
1705        n: cusolver_int_t,
1706        nrhs: cusolver_int_t,
1707        dA: *mut f64,
1708        ldda: cusolver_int_t,
1709        dB: *mut f64,
1710        lddb: cusolver_int_t,
1711        dX: *mut f64,
1712        lddx: cusolver_int_t,
1713        dWorkspace: *mut ::core::ffi::c_void,
1714        lwork_bytes: usize,
1715        iter: *mut cusolver_int_t,
1716        d_info: *mut cusolver_int_t,
1717    ) -> cusolverStatus_t;
1718    pub fn cusolverDnDDgels_bufferSize(
1719        handle: cusolverDnHandle_t,
1720        m: cusolver_int_t,
1721        n: cusolver_int_t,
1722        nrhs: cusolver_int_t,
1723        dA: *mut f64,
1724        ldda: cusolver_int_t,
1725        dB: *mut f64,
1726        lddb: cusolver_int_t,
1727        dX: *mut f64,
1728        lddx: cusolver_int_t,
1729        dWorkspace: *mut ::core::ffi::c_void,
1730        lwork_bytes: *mut usize,
1731    ) -> cusolverStatus_t;
1732    pub fn cusolverDnDDgesv(
1733        handle: cusolverDnHandle_t,
1734        n: cusolver_int_t,
1735        nrhs: cusolver_int_t,
1736        dA: *mut f64,
1737        ldda: cusolver_int_t,
1738        dipiv: *mut cusolver_int_t,
1739        dB: *mut f64,
1740        lddb: cusolver_int_t,
1741        dX: *mut f64,
1742        lddx: cusolver_int_t,
1743        dWorkspace: *mut ::core::ffi::c_void,
1744        lwork_bytes: usize,
1745        iter: *mut cusolver_int_t,
1746        d_info: *mut cusolver_int_t,
1747    ) -> cusolverStatus_t;
1748    pub fn cusolverDnDDgesv_bufferSize(
1749        handle: cusolverDnHandle_t,
1750        n: cusolver_int_t,
1751        nrhs: cusolver_int_t,
1752        dA: *mut f64,
1753        ldda: cusolver_int_t,
1754        dipiv: *mut cusolver_int_t,
1755        dB: *mut f64,
1756        lddb: cusolver_int_t,
1757        dX: *mut f64,
1758        lddx: cusolver_int_t,
1759        dWorkspace: *mut ::core::ffi::c_void,
1760        lwork_bytes: *mut usize,
1761    ) -> cusolverStatus_t;
1762    pub fn cusolverDnDHgels(
1763        handle: cusolverDnHandle_t,
1764        m: cusolver_int_t,
1765        n: cusolver_int_t,
1766        nrhs: cusolver_int_t,
1767        dA: *mut f64,
1768        ldda: cusolver_int_t,
1769        dB: *mut f64,
1770        lddb: cusolver_int_t,
1771        dX: *mut f64,
1772        lddx: cusolver_int_t,
1773        dWorkspace: *mut ::core::ffi::c_void,
1774        lwork_bytes: usize,
1775        iter: *mut cusolver_int_t,
1776        d_info: *mut cusolver_int_t,
1777    ) -> cusolverStatus_t;
1778    pub fn cusolverDnDHgels_bufferSize(
1779        handle: cusolverDnHandle_t,
1780        m: cusolver_int_t,
1781        n: cusolver_int_t,
1782        nrhs: cusolver_int_t,
1783        dA: *mut f64,
1784        ldda: cusolver_int_t,
1785        dB: *mut f64,
1786        lddb: cusolver_int_t,
1787        dX: *mut f64,
1788        lddx: cusolver_int_t,
1789        dWorkspace: *mut ::core::ffi::c_void,
1790        lwork_bytes: *mut usize,
1791    ) -> cusolverStatus_t;
1792    pub fn cusolverDnDHgesv(
1793        handle: cusolverDnHandle_t,
1794        n: cusolver_int_t,
1795        nrhs: cusolver_int_t,
1796        dA: *mut f64,
1797        ldda: cusolver_int_t,
1798        dipiv: *mut cusolver_int_t,
1799        dB: *mut f64,
1800        lddb: cusolver_int_t,
1801        dX: *mut f64,
1802        lddx: cusolver_int_t,
1803        dWorkspace: *mut ::core::ffi::c_void,
1804        lwork_bytes: usize,
1805        iter: *mut cusolver_int_t,
1806        d_info: *mut cusolver_int_t,
1807    ) -> cusolverStatus_t;
1808    pub fn cusolverDnDHgesv_bufferSize(
1809        handle: cusolverDnHandle_t,
1810        n: cusolver_int_t,
1811        nrhs: cusolver_int_t,
1812        dA: *mut f64,
1813        ldda: cusolver_int_t,
1814        dipiv: *mut cusolver_int_t,
1815        dB: *mut f64,
1816        lddb: cusolver_int_t,
1817        dX: *mut f64,
1818        lddx: cusolver_int_t,
1819        dWorkspace: *mut ::core::ffi::c_void,
1820        lwork_bytes: *mut usize,
1821    ) -> cusolverStatus_t;
1822    pub fn cusolverDnDSgels(
1823        handle: cusolverDnHandle_t,
1824        m: cusolver_int_t,
1825        n: cusolver_int_t,
1826        nrhs: cusolver_int_t,
1827        dA: *mut f64,
1828        ldda: cusolver_int_t,
1829        dB: *mut f64,
1830        lddb: cusolver_int_t,
1831        dX: *mut f64,
1832        lddx: cusolver_int_t,
1833        dWorkspace: *mut ::core::ffi::c_void,
1834        lwork_bytes: usize,
1835        iter: *mut cusolver_int_t,
1836        d_info: *mut cusolver_int_t,
1837    ) -> cusolverStatus_t;
1838    pub fn cusolverDnDSgels_bufferSize(
1839        handle: cusolverDnHandle_t,
1840        m: cusolver_int_t,
1841        n: cusolver_int_t,
1842        nrhs: cusolver_int_t,
1843        dA: *mut f64,
1844        ldda: cusolver_int_t,
1845        dB: *mut f64,
1846        lddb: cusolver_int_t,
1847        dX: *mut f64,
1848        lddx: cusolver_int_t,
1849        dWorkspace: *mut ::core::ffi::c_void,
1850        lwork_bytes: *mut usize,
1851    ) -> cusolverStatus_t;
1852    pub fn cusolverDnDSgesv(
1853        handle: cusolverDnHandle_t,
1854        n: cusolver_int_t,
1855        nrhs: cusolver_int_t,
1856        dA: *mut f64,
1857        ldda: cusolver_int_t,
1858        dipiv: *mut cusolver_int_t,
1859        dB: *mut f64,
1860        lddb: cusolver_int_t,
1861        dX: *mut f64,
1862        lddx: cusolver_int_t,
1863        dWorkspace: *mut ::core::ffi::c_void,
1864        lwork_bytes: usize,
1865        iter: *mut cusolver_int_t,
1866        d_info: *mut cusolver_int_t,
1867    ) -> cusolverStatus_t;
1868    pub fn cusolverDnDSgesv_bufferSize(
1869        handle: cusolverDnHandle_t,
1870        n: cusolver_int_t,
1871        nrhs: cusolver_int_t,
1872        dA: *mut f64,
1873        ldda: cusolver_int_t,
1874        dipiv: *mut cusolver_int_t,
1875        dB: *mut f64,
1876        lddb: cusolver_int_t,
1877        dX: *mut f64,
1878        lddx: cusolver_int_t,
1879        dWorkspace: *mut ::core::ffi::c_void,
1880        lwork_bytes: *mut usize,
1881    ) -> cusolverStatus_t;
1882    pub fn cusolverDnDXgels(
1883        handle: cusolverDnHandle_t,
1884        m: cusolver_int_t,
1885        n: cusolver_int_t,
1886        nrhs: cusolver_int_t,
1887        dA: *mut f64,
1888        ldda: cusolver_int_t,
1889        dB: *mut f64,
1890        lddb: cusolver_int_t,
1891        dX: *mut f64,
1892        lddx: cusolver_int_t,
1893        dWorkspace: *mut ::core::ffi::c_void,
1894        lwork_bytes: usize,
1895        iter: *mut cusolver_int_t,
1896        d_info: *mut cusolver_int_t,
1897    ) -> cusolverStatus_t;
1898    pub fn cusolverDnDXgels_bufferSize(
1899        handle: cusolverDnHandle_t,
1900        m: cusolver_int_t,
1901        n: cusolver_int_t,
1902        nrhs: cusolver_int_t,
1903        dA: *mut f64,
1904        ldda: cusolver_int_t,
1905        dB: *mut f64,
1906        lddb: cusolver_int_t,
1907        dX: *mut f64,
1908        lddx: cusolver_int_t,
1909        dWorkspace: *mut ::core::ffi::c_void,
1910        lwork_bytes: *mut usize,
1911    ) -> cusolverStatus_t;
1912    pub fn cusolverDnDXgesv(
1913        handle: cusolverDnHandle_t,
1914        n: cusolver_int_t,
1915        nrhs: cusolver_int_t,
1916        dA: *mut f64,
1917        ldda: cusolver_int_t,
1918        dipiv: *mut cusolver_int_t,
1919        dB: *mut f64,
1920        lddb: cusolver_int_t,
1921        dX: *mut f64,
1922        lddx: cusolver_int_t,
1923        dWorkspace: *mut ::core::ffi::c_void,
1924        lwork_bytes: usize,
1925        iter: *mut cusolver_int_t,
1926        d_info: *mut cusolver_int_t,
1927    ) -> cusolverStatus_t;
1928    pub fn cusolverDnDXgesv_bufferSize(
1929        handle: cusolverDnHandle_t,
1930        n: cusolver_int_t,
1931        nrhs: cusolver_int_t,
1932        dA: *mut f64,
1933        ldda: cusolver_int_t,
1934        dipiv: *mut cusolver_int_t,
1935        dB: *mut f64,
1936        lddb: cusolver_int_t,
1937        dX: *mut f64,
1938        lddx: cusolver_int_t,
1939        dWorkspace: *mut ::core::ffi::c_void,
1940        lwork_bytes: *mut usize,
1941    ) -> cusolverStatus_t;
1942    pub fn cusolverDnDestroy(handle: cusolverDnHandle_t) -> cusolverStatus_t;
1943    pub fn cusolverDnDestroyGesvdjInfo(info: gesvdjInfo_t) -> cusolverStatus_t;
1944    pub fn cusolverDnDestroyParams(params: cusolverDnParams_t) -> cusolverStatus_t;
1945    pub fn cusolverDnDestroySyevjInfo(info: syevjInfo_t) -> cusolverStatus_t;
1946    pub fn cusolverDnDgebrd(
1947        handle: cusolverDnHandle_t,
1948        m: ::core::ffi::c_int,
1949        n: ::core::ffi::c_int,
1950        A: *mut f64,
1951        lda: ::core::ffi::c_int,
1952        D: *mut f64,
1953        E: *mut f64,
1954        TAUQ: *mut f64,
1955        TAUP: *mut f64,
1956        Work: *mut f64,
1957        Lwork: ::core::ffi::c_int,
1958        devInfo: *mut ::core::ffi::c_int,
1959    ) -> cusolverStatus_t;
1960    pub fn cusolverDnDgebrd_bufferSize(
1961        handle: cusolverDnHandle_t,
1962        m: ::core::ffi::c_int,
1963        n: ::core::ffi::c_int,
1964        Lwork: *mut ::core::ffi::c_int,
1965    ) -> cusolverStatus_t;
1966    pub fn cusolverDnDgeqrf(
1967        handle: cusolverDnHandle_t,
1968        m: ::core::ffi::c_int,
1969        n: ::core::ffi::c_int,
1970        A: *mut f64,
1971        lda: ::core::ffi::c_int,
1972        TAU: *mut f64,
1973        Workspace: *mut f64,
1974        Lwork: ::core::ffi::c_int,
1975        devInfo: *mut ::core::ffi::c_int,
1976    ) -> cusolverStatus_t;
1977    pub fn cusolverDnDgeqrf_bufferSize(
1978        handle: cusolverDnHandle_t,
1979        m: ::core::ffi::c_int,
1980        n: ::core::ffi::c_int,
1981        A: *mut f64,
1982        lda: ::core::ffi::c_int,
1983        lwork: *mut ::core::ffi::c_int,
1984    ) -> cusolverStatus_t;
1985    pub fn cusolverDnDgesvd(
1986        handle: cusolverDnHandle_t,
1987        jobu: ::core::ffi::c_schar,
1988        jobvt: ::core::ffi::c_schar,
1989        m: ::core::ffi::c_int,
1990        n: ::core::ffi::c_int,
1991        A: *mut f64,
1992        lda: ::core::ffi::c_int,
1993        S: *mut f64,
1994        U: *mut f64,
1995        ldu: ::core::ffi::c_int,
1996        VT: *mut f64,
1997        ldvt: ::core::ffi::c_int,
1998        work: *mut f64,
1999        lwork: ::core::ffi::c_int,
2000        rwork: *mut f64,
2001        info: *mut ::core::ffi::c_int,
2002    ) -> cusolverStatus_t;
2003    pub fn cusolverDnDgesvd_bufferSize(
2004        handle: cusolverDnHandle_t,
2005        m: ::core::ffi::c_int,
2006        n: ::core::ffi::c_int,
2007        lwork: *mut ::core::ffi::c_int,
2008    ) -> cusolverStatus_t;
2009    pub fn cusolverDnDgesvdaStridedBatched(
2010        handle: cusolverDnHandle_t,
2011        jobz: cusolverEigMode_t,
2012        rank: ::core::ffi::c_int,
2013        m: ::core::ffi::c_int,
2014        n: ::core::ffi::c_int,
2015        d_A: *const f64,
2016        lda: ::core::ffi::c_int,
2017        strideA: ::core::ffi::c_longlong,
2018        d_S: *mut f64,
2019        strideS: ::core::ffi::c_longlong,
2020        d_U: *mut f64,
2021        ldu: ::core::ffi::c_int,
2022        strideU: ::core::ffi::c_longlong,
2023        d_V: *mut f64,
2024        ldv: ::core::ffi::c_int,
2025        strideV: ::core::ffi::c_longlong,
2026        d_work: *mut f64,
2027        lwork: ::core::ffi::c_int,
2028        d_info: *mut ::core::ffi::c_int,
2029        h_R_nrmF: *mut f64,
2030        batchSize: ::core::ffi::c_int,
2031    ) -> cusolverStatus_t;
2032    pub fn cusolverDnDgesvdaStridedBatched_bufferSize(
2033        handle: cusolverDnHandle_t,
2034        jobz: cusolverEigMode_t,
2035        rank: ::core::ffi::c_int,
2036        m: ::core::ffi::c_int,
2037        n: ::core::ffi::c_int,
2038        d_A: *const f64,
2039        lda: ::core::ffi::c_int,
2040        strideA: ::core::ffi::c_longlong,
2041        d_S: *const f64,
2042        strideS: ::core::ffi::c_longlong,
2043        d_U: *const f64,
2044        ldu: ::core::ffi::c_int,
2045        strideU: ::core::ffi::c_longlong,
2046        d_V: *const f64,
2047        ldv: ::core::ffi::c_int,
2048        strideV: ::core::ffi::c_longlong,
2049        lwork: *mut ::core::ffi::c_int,
2050        batchSize: ::core::ffi::c_int,
2051    ) -> cusolverStatus_t;
2052    pub fn cusolverDnDgesvdj(
2053        handle: cusolverDnHandle_t,
2054        jobz: cusolverEigMode_t,
2055        econ: ::core::ffi::c_int,
2056        m: ::core::ffi::c_int,
2057        n: ::core::ffi::c_int,
2058        A: *mut f64,
2059        lda: ::core::ffi::c_int,
2060        S: *mut f64,
2061        U: *mut f64,
2062        ldu: ::core::ffi::c_int,
2063        V: *mut f64,
2064        ldv: ::core::ffi::c_int,
2065        work: *mut f64,
2066        lwork: ::core::ffi::c_int,
2067        info: *mut ::core::ffi::c_int,
2068        params: gesvdjInfo_t,
2069    ) -> cusolverStatus_t;
2070    pub fn cusolverDnDgesvdjBatched(
2071        handle: cusolverDnHandle_t,
2072        jobz: cusolverEigMode_t,
2073        m: ::core::ffi::c_int,
2074        n: ::core::ffi::c_int,
2075        A: *mut f64,
2076        lda: ::core::ffi::c_int,
2077        S: *mut f64,
2078        U: *mut f64,
2079        ldu: ::core::ffi::c_int,
2080        V: *mut f64,
2081        ldv: ::core::ffi::c_int,
2082        work: *mut f64,
2083        lwork: ::core::ffi::c_int,
2084        info: *mut ::core::ffi::c_int,
2085        params: gesvdjInfo_t,
2086        batchSize: ::core::ffi::c_int,
2087    ) -> cusolverStatus_t;
2088    pub fn cusolverDnDgesvdjBatched_bufferSize(
2089        handle: cusolverDnHandle_t,
2090        jobz: cusolverEigMode_t,
2091        m: ::core::ffi::c_int,
2092        n: ::core::ffi::c_int,
2093        A: *const f64,
2094        lda: ::core::ffi::c_int,
2095        S: *const f64,
2096        U: *const f64,
2097        ldu: ::core::ffi::c_int,
2098        V: *const f64,
2099        ldv: ::core::ffi::c_int,
2100        lwork: *mut ::core::ffi::c_int,
2101        params: gesvdjInfo_t,
2102        batchSize: ::core::ffi::c_int,
2103    ) -> cusolverStatus_t;
2104    pub fn cusolverDnDgesvdj_bufferSize(
2105        handle: cusolverDnHandle_t,
2106        jobz: cusolverEigMode_t,
2107        econ: ::core::ffi::c_int,
2108        m: ::core::ffi::c_int,
2109        n: ::core::ffi::c_int,
2110        A: *const f64,
2111        lda: ::core::ffi::c_int,
2112        S: *const f64,
2113        U: *const f64,
2114        ldu: ::core::ffi::c_int,
2115        V: *const f64,
2116        ldv: ::core::ffi::c_int,
2117        lwork: *mut ::core::ffi::c_int,
2118        params: gesvdjInfo_t,
2119    ) -> cusolverStatus_t;
2120    pub fn cusolverDnDgetrf(
2121        handle: cusolverDnHandle_t,
2122        m: ::core::ffi::c_int,
2123        n: ::core::ffi::c_int,
2124        A: *mut f64,
2125        lda: ::core::ffi::c_int,
2126        Workspace: *mut f64,
2127        devIpiv: *mut ::core::ffi::c_int,
2128        devInfo: *mut ::core::ffi::c_int,
2129    ) -> cusolverStatus_t;
2130    pub fn cusolverDnDgetrf_bufferSize(
2131        handle: cusolverDnHandle_t,
2132        m: ::core::ffi::c_int,
2133        n: ::core::ffi::c_int,
2134        A: *mut f64,
2135        lda: ::core::ffi::c_int,
2136        Lwork: *mut ::core::ffi::c_int,
2137    ) -> cusolverStatus_t;
2138    pub fn cusolverDnDgetrs(
2139        handle: cusolverDnHandle_t,
2140        trans: cublasOperation_t,
2141        n: ::core::ffi::c_int,
2142        nrhs: ::core::ffi::c_int,
2143        A: *const f64,
2144        lda: ::core::ffi::c_int,
2145        devIpiv: *const ::core::ffi::c_int,
2146        B: *mut f64,
2147        ldb: ::core::ffi::c_int,
2148        devInfo: *mut ::core::ffi::c_int,
2149    ) -> cusolverStatus_t;
2150    pub fn cusolverDnDlaswp(
2151        handle: cusolverDnHandle_t,
2152        n: ::core::ffi::c_int,
2153        A: *mut f64,
2154        lda: ::core::ffi::c_int,
2155        k1: ::core::ffi::c_int,
2156        k2: ::core::ffi::c_int,
2157        devIpiv: *const ::core::ffi::c_int,
2158        incx: ::core::ffi::c_int,
2159    ) -> cusolverStatus_t;
2160    pub fn cusolverDnDlauum(
2161        handle: cusolverDnHandle_t,
2162        uplo: cublasFillMode_t,
2163        n: ::core::ffi::c_int,
2164        A: *mut f64,
2165        lda: ::core::ffi::c_int,
2166        work: *mut f64,
2167        lwork: ::core::ffi::c_int,
2168        devInfo: *mut ::core::ffi::c_int,
2169    ) -> cusolverStatus_t;
2170    pub fn cusolverDnDlauum_bufferSize(
2171        handle: cusolverDnHandle_t,
2172        uplo: cublasFillMode_t,
2173        n: ::core::ffi::c_int,
2174        A: *mut f64,
2175        lda: ::core::ffi::c_int,
2176        lwork: *mut ::core::ffi::c_int,
2177    ) -> cusolverStatus_t;
2178    pub fn cusolverDnDorgbr(
2179        handle: cusolverDnHandle_t,
2180        side: cublasSideMode_t,
2181        m: ::core::ffi::c_int,
2182        n: ::core::ffi::c_int,
2183        k: ::core::ffi::c_int,
2184        A: *mut f64,
2185        lda: ::core::ffi::c_int,
2186        tau: *const f64,
2187        work: *mut f64,
2188        lwork: ::core::ffi::c_int,
2189        info: *mut ::core::ffi::c_int,
2190    ) -> cusolverStatus_t;
2191    pub fn cusolverDnDorgbr_bufferSize(
2192        handle: cusolverDnHandle_t,
2193        side: cublasSideMode_t,
2194        m: ::core::ffi::c_int,
2195        n: ::core::ffi::c_int,
2196        k: ::core::ffi::c_int,
2197        A: *const f64,
2198        lda: ::core::ffi::c_int,
2199        tau: *const f64,
2200        lwork: *mut ::core::ffi::c_int,
2201    ) -> cusolverStatus_t;
2202    pub fn cusolverDnDorgqr(
2203        handle: cusolverDnHandle_t,
2204        m: ::core::ffi::c_int,
2205        n: ::core::ffi::c_int,
2206        k: ::core::ffi::c_int,
2207        A: *mut f64,
2208        lda: ::core::ffi::c_int,
2209        tau: *const f64,
2210        work: *mut f64,
2211        lwork: ::core::ffi::c_int,
2212        info: *mut ::core::ffi::c_int,
2213    ) -> cusolverStatus_t;
2214    pub fn cusolverDnDorgqr_bufferSize(
2215        handle: cusolverDnHandle_t,
2216        m: ::core::ffi::c_int,
2217        n: ::core::ffi::c_int,
2218        k: ::core::ffi::c_int,
2219        A: *const f64,
2220        lda: ::core::ffi::c_int,
2221        tau: *const f64,
2222        lwork: *mut ::core::ffi::c_int,
2223    ) -> cusolverStatus_t;
2224    pub fn cusolverDnDorgtr(
2225        handle: cusolverDnHandle_t,
2226        uplo: cublasFillMode_t,
2227        n: ::core::ffi::c_int,
2228        A: *mut f64,
2229        lda: ::core::ffi::c_int,
2230        tau: *const f64,
2231        work: *mut f64,
2232        lwork: ::core::ffi::c_int,
2233        info: *mut ::core::ffi::c_int,
2234    ) -> cusolverStatus_t;
2235    pub fn cusolverDnDorgtr_bufferSize(
2236        handle: cusolverDnHandle_t,
2237        uplo: cublasFillMode_t,
2238        n: ::core::ffi::c_int,
2239        A: *const f64,
2240        lda: ::core::ffi::c_int,
2241        tau: *const f64,
2242        lwork: *mut ::core::ffi::c_int,
2243    ) -> cusolverStatus_t;
2244    pub fn cusolverDnDormqr(
2245        handle: cusolverDnHandle_t,
2246        side: cublasSideMode_t,
2247        trans: cublasOperation_t,
2248        m: ::core::ffi::c_int,
2249        n: ::core::ffi::c_int,
2250        k: ::core::ffi::c_int,
2251        A: *const f64,
2252        lda: ::core::ffi::c_int,
2253        tau: *const f64,
2254        C: *mut f64,
2255        ldc: ::core::ffi::c_int,
2256        work: *mut f64,
2257        lwork: ::core::ffi::c_int,
2258        devInfo: *mut ::core::ffi::c_int,
2259    ) -> cusolverStatus_t;
2260    pub fn cusolverDnDormqr_bufferSize(
2261        handle: cusolverDnHandle_t,
2262        side: cublasSideMode_t,
2263        trans: cublasOperation_t,
2264        m: ::core::ffi::c_int,
2265        n: ::core::ffi::c_int,
2266        k: ::core::ffi::c_int,
2267        A: *const f64,
2268        lda: ::core::ffi::c_int,
2269        tau: *const f64,
2270        C: *const f64,
2271        ldc: ::core::ffi::c_int,
2272        lwork: *mut ::core::ffi::c_int,
2273    ) -> cusolverStatus_t;
2274    pub fn cusolverDnDormtr(
2275        handle: cusolverDnHandle_t,
2276        side: cublasSideMode_t,
2277        uplo: cublasFillMode_t,
2278        trans: cublasOperation_t,
2279        m: ::core::ffi::c_int,
2280        n: ::core::ffi::c_int,
2281        A: *mut f64,
2282        lda: ::core::ffi::c_int,
2283        tau: *mut f64,
2284        C: *mut f64,
2285        ldc: ::core::ffi::c_int,
2286        work: *mut f64,
2287        lwork: ::core::ffi::c_int,
2288        info: *mut ::core::ffi::c_int,
2289    ) -> cusolverStatus_t;
2290    pub fn cusolverDnDormtr_bufferSize(
2291        handle: cusolverDnHandle_t,
2292        side: cublasSideMode_t,
2293        uplo: cublasFillMode_t,
2294        trans: cublasOperation_t,
2295        m: ::core::ffi::c_int,
2296        n: ::core::ffi::c_int,
2297        A: *const f64,
2298        lda: ::core::ffi::c_int,
2299        tau: *const f64,
2300        C: *const f64,
2301        ldc: ::core::ffi::c_int,
2302        lwork: *mut ::core::ffi::c_int,
2303    ) -> cusolverStatus_t;
2304    pub fn cusolverDnDpotrf(
2305        handle: cusolverDnHandle_t,
2306        uplo: cublasFillMode_t,
2307        n: ::core::ffi::c_int,
2308        A: *mut f64,
2309        lda: ::core::ffi::c_int,
2310        Workspace: *mut f64,
2311        Lwork: ::core::ffi::c_int,
2312        devInfo: *mut ::core::ffi::c_int,
2313    ) -> cusolverStatus_t;
2314    pub fn cusolverDnDpotrfBatched(
2315        handle: cusolverDnHandle_t,
2316        uplo: cublasFillMode_t,
2317        n: ::core::ffi::c_int,
2318        Aarray: *mut *mut f64,
2319        lda: ::core::ffi::c_int,
2320        infoArray: *mut ::core::ffi::c_int,
2321        batchSize: ::core::ffi::c_int,
2322    ) -> cusolverStatus_t;
2323    pub fn cusolverDnDpotrf_bufferSize(
2324        handle: cusolverDnHandle_t,
2325        uplo: cublasFillMode_t,
2326        n: ::core::ffi::c_int,
2327        A: *mut f64,
2328        lda: ::core::ffi::c_int,
2329        Lwork: *mut ::core::ffi::c_int,
2330    ) -> cusolverStatus_t;
2331    pub fn cusolverDnDpotri(
2332        handle: cusolverDnHandle_t,
2333        uplo: cublasFillMode_t,
2334        n: ::core::ffi::c_int,
2335        A: *mut f64,
2336        lda: ::core::ffi::c_int,
2337        work: *mut f64,
2338        lwork: ::core::ffi::c_int,
2339        devInfo: *mut ::core::ffi::c_int,
2340    ) -> cusolverStatus_t;
2341    pub fn cusolverDnDpotri_bufferSize(
2342        handle: cusolverDnHandle_t,
2343        uplo: cublasFillMode_t,
2344        n: ::core::ffi::c_int,
2345        A: *mut f64,
2346        lda: ::core::ffi::c_int,
2347        lwork: *mut ::core::ffi::c_int,
2348    ) -> cusolverStatus_t;
2349    pub fn cusolverDnDpotrs(
2350        handle: cusolverDnHandle_t,
2351        uplo: cublasFillMode_t,
2352        n: ::core::ffi::c_int,
2353        nrhs: ::core::ffi::c_int,
2354        A: *const f64,
2355        lda: ::core::ffi::c_int,
2356        B: *mut f64,
2357        ldb: ::core::ffi::c_int,
2358        devInfo: *mut ::core::ffi::c_int,
2359    ) -> cusolverStatus_t;
2360    pub fn cusolverDnDpotrsBatched(
2361        handle: cusolverDnHandle_t,
2362        uplo: cublasFillMode_t,
2363        n: ::core::ffi::c_int,
2364        nrhs: ::core::ffi::c_int,
2365        A: *mut *mut f64,
2366        lda: ::core::ffi::c_int,
2367        B: *mut *mut f64,
2368        ldb: ::core::ffi::c_int,
2369        d_info: *mut ::core::ffi::c_int,
2370        batchSize: ::core::ffi::c_int,
2371    ) -> cusolverStatus_t;
2372    pub fn cusolverDnDsyevd(
2373        handle: cusolverDnHandle_t,
2374        jobz: cusolverEigMode_t,
2375        uplo: cublasFillMode_t,
2376        n: ::core::ffi::c_int,
2377        A: *mut f64,
2378        lda: ::core::ffi::c_int,
2379        W: *mut f64,
2380        work: *mut f64,
2381        lwork: ::core::ffi::c_int,
2382        info: *mut ::core::ffi::c_int,
2383    ) -> cusolverStatus_t;
2384    pub fn cusolverDnDsyevd_bufferSize(
2385        handle: cusolverDnHandle_t,
2386        jobz: cusolverEigMode_t,
2387        uplo: cublasFillMode_t,
2388        n: ::core::ffi::c_int,
2389        A: *const f64,
2390        lda: ::core::ffi::c_int,
2391        W: *const f64,
2392        lwork: *mut ::core::ffi::c_int,
2393    ) -> cusolverStatus_t;
2394    pub fn cusolverDnDsyevdx(
2395        handle: cusolverDnHandle_t,
2396        jobz: cusolverEigMode_t,
2397        range: cusolverEigRange_t,
2398        uplo: cublasFillMode_t,
2399        n: ::core::ffi::c_int,
2400        A: *mut f64,
2401        lda: ::core::ffi::c_int,
2402        vl: f64,
2403        vu: f64,
2404        il: ::core::ffi::c_int,
2405        iu: ::core::ffi::c_int,
2406        meig: *mut ::core::ffi::c_int,
2407        W: *mut f64,
2408        work: *mut f64,
2409        lwork: ::core::ffi::c_int,
2410        info: *mut ::core::ffi::c_int,
2411    ) -> cusolverStatus_t;
2412    pub fn cusolverDnDsyevdx_bufferSize(
2413        handle: cusolverDnHandle_t,
2414        jobz: cusolverEigMode_t,
2415        range: cusolverEigRange_t,
2416        uplo: cublasFillMode_t,
2417        n: ::core::ffi::c_int,
2418        A: *const f64,
2419        lda: ::core::ffi::c_int,
2420        vl: f64,
2421        vu: f64,
2422        il: ::core::ffi::c_int,
2423        iu: ::core::ffi::c_int,
2424        meig: *mut ::core::ffi::c_int,
2425        W: *const f64,
2426        lwork: *mut ::core::ffi::c_int,
2427    ) -> cusolverStatus_t;
2428    pub fn cusolverDnDsyevj(
2429        handle: cusolverDnHandle_t,
2430        jobz: cusolverEigMode_t,
2431        uplo: cublasFillMode_t,
2432        n: ::core::ffi::c_int,
2433        A: *mut f64,
2434        lda: ::core::ffi::c_int,
2435        W: *mut f64,
2436        work: *mut f64,
2437        lwork: ::core::ffi::c_int,
2438        info: *mut ::core::ffi::c_int,
2439        params: syevjInfo_t,
2440    ) -> cusolverStatus_t;
2441    pub fn cusolverDnDsyevjBatched(
2442        handle: cusolverDnHandle_t,
2443        jobz: cusolverEigMode_t,
2444        uplo: cublasFillMode_t,
2445        n: ::core::ffi::c_int,
2446        A: *mut f64,
2447        lda: ::core::ffi::c_int,
2448        W: *mut f64,
2449        work: *mut f64,
2450        lwork: ::core::ffi::c_int,
2451        info: *mut ::core::ffi::c_int,
2452        params: syevjInfo_t,
2453        batchSize: ::core::ffi::c_int,
2454    ) -> cusolverStatus_t;
2455    pub fn cusolverDnDsyevjBatched_bufferSize(
2456        handle: cusolverDnHandle_t,
2457        jobz: cusolverEigMode_t,
2458        uplo: cublasFillMode_t,
2459        n: ::core::ffi::c_int,
2460        A: *const f64,
2461        lda: ::core::ffi::c_int,
2462        W: *const f64,
2463        lwork: *mut ::core::ffi::c_int,
2464        params: syevjInfo_t,
2465        batchSize: ::core::ffi::c_int,
2466    ) -> cusolverStatus_t;
2467    pub fn cusolverDnDsyevj_bufferSize(
2468        handle: cusolverDnHandle_t,
2469        jobz: cusolverEigMode_t,
2470        uplo: cublasFillMode_t,
2471        n: ::core::ffi::c_int,
2472        A: *const f64,
2473        lda: ::core::ffi::c_int,
2474        W: *const f64,
2475        lwork: *mut ::core::ffi::c_int,
2476        params: syevjInfo_t,
2477    ) -> cusolverStatus_t;
2478    pub fn cusolverDnDsygvd(
2479        handle: cusolverDnHandle_t,
2480        itype: cusolverEigType_t,
2481        jobz: cusolverEigMode_t,
2482        uplo: cublasFillMode_t,
2483        n: ::core::ffi::c_int,
2484        A: *mut f64,
2485        lda: ::core::ffi::c_int,
2486        B: *mut f64,
2487        ldb: ::core::ffi::c_int,
2488        W: *mut f64,
2489        work: *mut f64,
2490        lwork: ::core::ffi::c_int,
2491        info: *mut ::core::ffi::c_int,
2492    ) -> cusolverStatus_t;
2493    pub fn cusolverDnDsygvd_bufferSize(
2494        handle: cusolverDnHandle_t,
2495        itype: cusolverEigType_t,
2496        jobz: cusolverEigMode_t,
2497        uplo: cublasFillMode_t,
2498        n: ::core::ffi::c_int,
2499        A: *const f64,
2500        lda: ::core::ffi::c_int,
2501        B: *const f64,
2502        ldb: ::core::ffi::c_int,
2503        W: *const f64,
2504        lwork: *mut ::core::ffi::c_int,
2505    ) -> cusolverStatus_t;
2506    pub fn cusolverDnDsygvdx(
2507        handle: cusolverDnHandle_t,
2508        itype: cusolverEigType_t,
2509        jobz: cusolverEigMode_t,
2510        range: cusolverEigRange_t,
2511        uplo: cublasFillMode_t,
2512        n: ::core::ffi::c_int,
2513        A: *mut f64,
2514        lda: ::core::ffi::c_int,
2515        B: *mut f64,
2516        ldb: ::core::ffi::c_int,
2517        vl: f64,
2518        vu: f64,
2519        il: ::core::ffi::c_int,
2520        iu: ::core::ffi::c_int,
2521        meig: *mut ::core::ffi::c_int,
2522        W: *mut f64,
2523        work: *mut f64,
2524        lwork: ::core::ffi::c_int,
2525        info: *mut ::core::ffi::c_int,
2526    ) -> cusolverStatus_t;
2527    pub fn cusolverDnDsygvdx_bufferSize(
2528        handle: cusolverDnHandle_t,
2529        itype: cusolverEigType_t,
2530        jobz: cusolverEigMode_t,
2531        range: cusolverEigRange_t,
2532        uplo: cublasFillMode_t,
2533        n: ::core::ffi::c_int,
2534        A: *const f64,
2535        lda: ::core::ffi::c_int,
2536        B: *const f64,
2537        ldb: ::core::ffi::c_int,
2538        vl: f64,
2539        vu: f64,
2540        il: ::core::ffi::c_int,
2541        iu: ::core::ffi::c_int,
2542        meig: *mut ::core::ffi::c_int,
2543        W: *const f64,
2544        lwork: *mut ::core::ffi::c_int,
2545    ) -> cusolverStatus_t;
2546    pub fn cusolverDnDsygvj(
2547        handle: cusolverDnHandle_t,
2548        itype: cusolverEigType_t,
2549        jobz: cusolverEigMode_t,
2550        uplo: cublasFillMode_t,
2551        n: ::core::ffi::c_int,
2552        A: *mut f64,
2553        lda: ::core::ffi::c_int,
2554        B: *mut f64,
2555        ldb: ::core::ffi::c_int,
2556        W: *mut f64,
2557        work: *mut f64,
2558        lwork: ::core::ffi::c_int,
2559        info: *mut ::core::ffi::c_int,
2560        params: syevjInfo_t,
2561    ) -> cusolverStatus_t;
2562    pub fn cusolverDnDsygvj_bufferSize(
2563        handle: cusolverDnHandle_t,
2564        itype: cusolverEigType_t,
2565        jobz: cusolverEigMode_t,
2566        uplo: cublasFillMode_t,
2567        n: ::core::ffi::c_int,
2568        A: *const f64,
2569        lda: ::core::ffi::c_int,
2570        B: *const f64,
2571        ldb: ::core::ffi::c_int,
2572        W: *const f64,
2573        lwork: *mut ::core::ffi::c_int,
2574        params: syevjInfo_t,
2575    ) -> cusolverStatus_t;
2576    pub fn cusolverDnDsytrd(
2577        handle: cusolverDnHandle_t,
2578        uplo: cublasFillMode_t,
2579        n: ::core::ffi::c_int,
2580        A: *mut f64,
2581        lda: ::core::ffi::c_int,
2582        d: *mut f64,
2583        e: *mut f64,
2584        tau: *mut f64,
2585        work: *mut f64,
2586        lwork: ::core::ffi::c_int,
2587        info: *mut ::core::ffi::c_int,
2588    ) -> cusolverStatus_t;
2589    pub fn cusolverDnDsytrd_bufferSize(
2590        handle: cusolverDnHandle_t,
2591        uplo: cublasFillMode_t,
2592        n: ::core::ffi::c_int,
2593        A: *const f64,
2594        lda: ::core::ffi::c_int,
2595        d: *const f64,
2596        e: *const f64,
2597        tau: *const f64,
2598        lwork: *mut ::core::ffi::c_int,
2599    ) -> cusolverStatus_t;
2600    pub fn cusolverDnDsytrf(
2601        handle: cusolverDnHandle_t,
2602        uplo: cublasFillMode_t,
2603        n: ::core::ffi::c_int,
2604        A: *mut f64,
2605        lda: ::core::ffi::c_int,
2606        ipiv: *mut ::core::ffi::c_int,
2607        work: *mut f64,
2608        lwork: ::core::ffi::c_int,
2609        info: *mut ::core::ffi::c_int,
2610    ) -> cusolverStatus_t;
2611    pub fn cusolverDnDsytrf_bufferSize(
2612        handle: cusolverDnHandle_t,
2613        n: ::core::ffi::c_int,
2614        A: *mut f64,
2615        lda: ::core::ffi::c_int,
2616        lwork: *mut ::core::ffi::c_int,
2617    ) -> cusolverStatus_t;
2618    pub fn cusolverDnDsytri(
2619        handle: cusolverDnHandle_t,
2620        uplo: cublasFillMode_t,
2621        n: ::core::ffi::c_int,
2622        A: *mut f64,
2623        lda: ::core::ffi::c_int,
2624        ipiv: *const ::core::ffi::c_int,
2625        work: *mut f64,
2626        lwork: ::core::ffi::c_int,
2627        info: *mut ::core::ffi::c_int,
2628    ) -> cusolverStatus_t;
2629    pub fn cusolverDnDsytri_bufferSize(
2630        handle: cusolverDnHandle_t,
2631        uplo: cublasFillMode_t,
2632        n: ::core::ffi::c_int,
2633        A: *mut f64,
2634        lda: ::core::ffi::c_int,
2635        ipiv: *const ::core::ffi::c_int,
2636        lwork: *mut ::core::ffi::c_int,
2637    ) -> cusolverStatus_t;
2638    #[cfg(any(
2639        feature = "cuda-11040",
2640        feature = "cuda-11050",
2641        feature = "cuda-11060",
2642        feature = "cuda-11070",
2643        feature = "cuda-11080",
2644        feature = "cuda-12000",
2645        feature = "cuda-12010",
2646        feature = "cuda-12020",
2647        feature = "cuda-12030",
2648        feature = "cuda-12040",
2649        feature = "cuda-12050",
2650        feature = "cuda-12060",
2651        feature = "cuda-12080",
2652        feature = "cuda-12090"
2653    ))]
2654    pub fn cusolverDnGeqrf(
2655        handle: cusolverDnHandle_t,
2656        params: cusolverDnParams_t,
2657        m: i64,
2658        n: i64,
2659        dataTypeA: cudaDataType,
2660        A: *mut ::core::ffi::c_void,
2661        lda: i64,
2662        dataTypeTau: cudaDataType,
2663        tau: *mut ::core::ffi::c_void,
2664        computeType: cudaDataType,
2665        pBuffer: *mut ::core::ffi::c_void,
2666        workspaceInBytes: usize,
2667        info: *mut ::core::ffi::c_int,
2668    ) -> cusolverStatus_t;
2669    #[cfg(any(
2670        feature = "cuda-11040",
2671        feature = "cuda-11050",
2672        feature = "cuda-11060",
2673        feature = "cuda-11070",
2674        feature = "cuda-11080",
2675        feature = "cuda-12000",
2676        feature = "cuda-12010",
2677        feature = "cuda-12020",
2678        feature = "cuda-12030",
2679        feature = "cuda-12040",
2680        feature = "cuda-12050",
2681        feature = "cuda-12060",
2682        feature = "cuda-12080",
2683        feature = "cuda-12090"
2684    ))]
2685    pub fn cusolverDnGeqrf_bufferSize(
2686        handle: cusolverDnHandle_t,
2687        params: cusolverDnParams_t,
2688        m: i64,
2689        n: i64,
2690        dataTypeA: cudaDataType,
2691        A: *const ::core::ffi::c_void,
2692        lda: i64,
2693        dataTypeTau: cudaDataType,
2694        tau: *const ::core::ffi::c_void,
2695        computeType: cudaDataType,
2696        workspaceInBytes: *mut usize,
2697    ) -> cusolverStatus_t;
2698    #[cfg(any(
2699        feature = "cuda-11040",
2700        feature = "cuda-11050",
2701        feature = "cuda-11060",
2702        feature = "cuda-11070",
2703        feature = "cuda-11080",
2704        feature = "cuda-12000",
2705        feature = "cuda-12010",
2706        feature = "cuda-12020",
2707        feature = "cuda-12030",
2708        feature = "cuda-12040",
2709        feature = "cuda-12050",
2710        feature = "cuda-12060",
2711        feature = "cuda-12080",
2712        feature = "cuda-12090"
2713    ))]
2714    pub fn cusolverDnGesvd(
2715        handle: cusolverDnHandle_t,
2716        params: cusolverDnParams_t,
2717        jobu: ::core::ffi::c_schar,
2718        jobvt: ::core::ffi::c_schar,
2719        m: i64,
2720        n: i64,
2721        dataTypeA: cudaDataType,
2722        A: *mut ::core::ffi::c_void,
2723        lda: i64,
2724        dataTypeS: cudaDataType,
2725        S: *mut ::core::ffi::c_void,
2726        dataTypeU: cudaDataType,
2727        U: *mut ::core::ffi::c_void,
2728        ldu: i64,
2729        dataTypeVT: cudaDataType,
2730        VT: *mut ::core::ffi::c_void,
2731        ldvt: i64,
2732        computeType: cudaDataType,
2733        pBuffer: *mut ::core::ffi::c_void,
2734        workspaceInBytes: usize,
2735        info: *mut ::core::ffi::c_int,
2736    ) -> cusolverStatus_t;
2737    #[cfg(any(
2738        feature = "cuda-11040",
2739        feature = "cuda-11050",
2740        feature = "cuda-11060",
2741        feature = "cuda-11070",
2742        feature = "cuda-11080",
2743        feature = "cuda-12000",
2744        feature = "cuda-12010",
2745        feature = "cuda-12020",
2746        feature = "cuda-12030",
2747        feature = "cuda-12040",
2748        feature = "cuda-12050",
2749        feature = "cuda-12060",
2750        feature = "cuda-12080",
2751        feature = "cuda-12090"
2752    ))]
2753    pub fn cusolverDnGesvd_bufferSize(
2754        handle: cusolverDnHandle_t,
2755        params: cusolverDnParams_t,
2756        jobu: ::core::ffi::c_schar,
2757        jobvt: ::core::ffi::c_schar,
2758        m: i64,
2759        n: i64,
2760        dataTypeA: cudaDataType,
2761        A: *const ::core::ffi::c_void,
2762        lda: i64,
2763        dataTypeS: cudaDataType,
2764        S: *const ::core::ffi::c_void,
2765        dataTypeU: cudaDataType,
2766        U: *const ::core::ffi::c_void,
2767        ldu: i64,
2768        dataTypeVT: cudaDataType,
2769        VT: *const ::core::ffi::c_void,
2770        ldvt: i64,
2771        computeType: cudaDataType,
2772        workspaceInBytes: *mut usize,
2773    ) -> cusolverStatus_t;
2774    #[cfg(any(
2775        feature = "cuda-12020",
2776        feature = "cuda-12030",
2777        feature = "cuda-12040",
2778        feature = "cuda-12050",
2779        feature = "cuda-12060",
2780        feature = "cuda-12080",
2781        feature = "cuda-12090",
2782        feature = "cuda-13000",
2783        feature = "cuda-13010"
2784    ))]
2785    pub fn cusolverDnGetDeterministicMode(
2786        handle: cusolverDnHandle_t,
2787        mode: *mut cusolverDeterministicMode_t,
2788    ) -> cusolverStatus_t;
2789    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
2790    pub fn cusolverDnGetEmulationStrategy(
2791        handle: cusolverDnHandle_t,
2792        strategy: *mut cudaEmulationStrategy_t,
2793    ) -> cusolverStatus_t;
2794    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
2795    pub fn cusolverDnGetMathMode(
2796        handle: cusolverDnHandle_t,
2797        mode: *mut cusolverMathMode_t,
2798    ) -> cusolverStatus_t;
2799    pub fn cusolverDnGetStream(
2800        handle: cusolverDnHandle_t,
2801        streamId: *mut cudaStream_t,
2802    ) -> cusolverStatus_t;
2803    #[cfg(any(
2804        feature = "cuda-11040",
2805        feature = "cuda-11050",
2806        feature = "cuda-11060",
2807        feature = "cuda-11070",
2808        feature = "cuda-11080",
2809        feature = "cuda-12000",
2810        feature = "cuda-12010",
2811        feature = "cuda-12020",
2812        feature = "cuda-12030",
2813        feature = "cuda-12040",
2814        feature = "cuda-12050",
2815        feature = "cuda-12060",
2816        feature = "cuda-12080",
2817        feature = "cuda-12090"
2818    ))]
2819    pub fn cusolverDnGetrf(
2820        handle: cusolverDnHandle_t,
2821        params: cusolverDnParams_t,
2822        m: i64,
2823        n: i64,
2824        dataTypeA: cudaDataType,
2825        A: *mut ::core::ffi::c_void,
2826        lda: i64,
2827        ipiv: *mut i64,
2828        computeType: cudaDataType,
2829        pBuffer: *mut ::core::ffi::c_void,
2830        workspaceInBytes: usize,
2831        info: *mut ::core::ffi::c_int,
2832    ) -> cusolverStatus_t;
2833    #[cfg(any(
2834        feature = "cuda-11040",
2835        feature = "cuda-11050",
2836        feature = "cuda-11060",
2837        feature = "cuda-11070",
2838        feature = "cuda-11080",
2839        feature = "cuda-12000",
2840        feature = "cuda-12010",
2841        feature = "cuda-12020",
2842        feature = "cuda-12030",
2843        feature = "cuda-12040",
2844        feature = "cuda-12050",
2845        feature = "cuda-12060",
2846        feature = "cuda-12080",
2847        feature = "cuda-12090"
2848    ))]
2849    pub fn cusolverDnGetrf_bufferSize(
2850        handle: cusolverDnHandle_t,
2851        params: cusolverDnParams_t,
2852        m: i64,
2853        n: i64,
2854        dataTypeA: cudaDataType,
2855        A: *const ::core::ffi::c_void,
2856        lda: i64,
2857        computeType: cudaDataType,
2858        workspaceInBytes: *mut usize,
2859    ) -> cusolverStatus_t;
2860    #[cfg(any(
2861        feature = "cuda-11040",
2862        feature = "cuda-11050",
2863        feature = "cuda-11060",
2864        feature = "cuda-11070",
2865        feature = "cuda-11080",
2866        feature = "cuda-12000",
2867        feature = "cuda-12010",
2868        feature = "cuda-12020",
2869        feature = "cuda-12030",
2870        feature = "cuda-12040",
2871        feature = "cuda-12050",
2872        feature = "cuda-12060",
2873        feature = "cuda-12080",
2874        feature = "cuda-12090"
2875    ))]
2876    pub fn cusolverDnGetrs(
2877        handle: cusolverDnHandle_t,
2878        params: cusolverDnParams_t,
2879        trans: cublasOperation_t,
2880        n: i64,
2881        nrhs: i64,
2882        dataTypeA: cudaDataType,
2883        A: *const ::core::ffi::c_void,
2884        lda: i64,
2885        ipiv: *const i64,
2886        dataTypeB: cudaDataType,
2887        B: *mut ::core::ffi::c_void,
2888        ldb: i64,
2889        info: *mut ::core::ffi::c_int,
2890    ) -> cusolverStatus_t;
2891    pub fn cusolverDnIRSInfosCreate(infos_ptr: *mut cusolverDnIRSInfos_t) -> cusolverStatus_t;
2892    pub fn cusolverDnIRSInfosDestroy(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t;
2893    pub fn cusolverDnIRSInfosGetMaxIters(
2894        infos: cusolverDnIRSInfos_t,
2895        maxiters: *mut cusolver_int_t,
2896    ) -> cusolverStatus_t;
2897    pub fn cusolverDnIRSInfosGetNiters(
2898        infos: cusolverDnIRSInfos_t,
2899        niters: *mut cusolver_int_t,
2900    ) -> cusolverStatus_t;
2901    pub fn cusolverDnIRSInfosGetOuterNiters(
2902        infos: cusolverDnIRSInfos_t,
2903        outer_niters: *mut cusolver_int_t,
2904    ) -> cusolverStatus_t;
2905    pub fn cusolverDnIRSInfosGetResidualHistory(
2906        infos: cusolverDnIRSInfos_t,
2907        residual_history: *mut *mut ::core::ffi::c_void,
2908    ) -> cusolverStatus_t;
2909    pub fn cusolverDnIRSInfosRequestResidual(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t;
2910    pub fn cusolverDnIRSParamsCreate(params_ptr: *mut cusolverDnIRSParams_t) -> cusolverStatus_t;
2911    pub fn cusolverDnIRSParamsDestroy(params: cusolverDnIRSParams_t) -> cusolverStatus_t;
2912    pub fn cusolverDnIRSParamsDisableFallback(params: cusolverDnIRSParams_t) -> cusolverStatus_t;
2913    pub fn cusolverDnIRSParamsEnableFallback(params: cusolverDnIRSParams_t) -> cusolverStatus_t;
2914    pub fn cusolverDnIRSParamsGetMaxIters(
2915        params: cusolverDnIRSParams_t,
2916        maxiters: *mut cusolver_int_t,
2917    ) -> cusolverStatus_t;
2918    pub fn cusolverDnIRSParamsSetMaxIters(
2919        params: cusolverDnIRSParams_t,
2920        maxiters: cusolver_int_t,
2921    ) -> cusolverStatus_t;
2922    pub fn cusolverDnIRSParamsSetMaxItersInner(
2923        params: cusolverDnIRSParams_t,
2924        maxiters_inner: cusolver_int_t,
2925    ) -> cusolverStatus_t;
2926    pub fn cusolverDnIRSParamsSetRefinementSolver(
2927        params: cusolverDnIRSParams_t,
2928        refinement_solver: cusolverIRSRefinement_t,
2929    ) -> cusolverStatus_t;
2930    pub fn cusolverDnIRSParamsSetSolverLowestPrecision(
2931        params: cusolverDnIRSParams_t,
2932        solver_lowest_precision: cusolverPrecType_t,
2933    ) -> cusolverStatus_t;
2934    pub fn cusolverDnIRSParamsSetSolverMainPrecision(
2935        params: cusolverDnIRSParams_t,
2936        solver_main_precision: cusolverPrecType_t,
2937    ) -> cusolverStatus_t;
2938    pub fn cusolverDnIRSParamsSetSolverPrecisions(
2939        params: cusolverDnIRSParams_t,
2940        solver_main_precision: cusolverPrecType_t,
2941        solver_lowest_precision: cusolverPrecType_t,
2942    ) -> cusolverStatus_t;
2943    pub fn cusolverDnIRSParamsSetTol(params: cusolverDnIRSParams_t, val: f64) -> cusolverStatus_t;
2944    pub fn cusolverDnIRSParamsSetTolInner(
2945        params: cusolverDnIRSParams_t,
2946        val: f64,
2947    ) -> cusolverStatus_t;
2948    pub fn cusolverDnIRSXgels(
2949        handle: cusolverDnHandle_t,
2950        gels_irs_params: cusolverDnIRSParams_t,
2951        gels_irs_infos: cusolverDnIRSInfos_t,
2952        m: cusolver_int_t,
2953        n: cusolver_int_t,
2954        nrhs: cusolver_int_t,
2955        dA: *mut ::core::ffi::c_void,
2956        ldda: cusolver_int_t,
2957        dB: *mut ::core::ffi::c_void,
2958        lddb: cusolver_int_t,
2959        dX: *mut ::core::ffi::c_void,
2960        lddx: cusolver_int_t,
2961        dWorkspace: *mut ::core::ffi::c_void,
2962        lwork_bytes: usize,
2963        niters: *mut cusolver_int_t,
2964        d_info: *mut cusolver_int_t,
2965    ) -> cusolverStatus_t;
2966    pub fn cusolverDnIRSXgels_bufferSize(
2967        handle: cusolverDnHandle_t,
2968        params: cusolverDnIRSParams_t,
2969        m: cusolver_int_t,
2970        n: cusolver_int_t,
2971        nrhs: cusolver_int_t,
2972        lwork_bytes: *mut usize,
2973    ) -> cusolverStatus_t;
2974    pub fn cusolverDnIRSXgesv(
2975        handle: cusolverDnHandle_t,
2976        gesv_irs_params: cusolverDnIRSParams_t,
2977        gesv_irs_infos: cusolverDnIRSInfos_t,
2978        n: cusolver_int_t,
2979        nrhs: cusolver_int_t,
2980        dA: *mut ::core::ffi::c_void,
2981        ldda: cusolver_int_t,
2982        dB: *mut ::core::ffi::c_void,
2983        lddb: cusolver_int_t,
2984        dX: *mut ::core::ffi::c_void,
2985        lddx: cusolver_int_t,
2986        dWorkspace: *mut ::core::ffi::c_void,
2987        lwork_bytes: usize,
2988        niters: *mut cusolver_int_t,
2989        d_info: *mut cusolver_int_t,
2990    ) -> cusolverStatus_t;
2991    pub fn cusolverDnIRSXgesv_bufferSize(
2992        handle: cusolverDnHandle_t,
2993        params: cusolverDnIRSParams_t,
2994        n: cusolver_int_t,
2995        nrhs: cusolver_int_t,
2996        lwork_bytes: *mut usize,
2997    ) -> cusolverStatus_t;
2998    #[cfg(any(
2999        feature = "cuda-11040",
3000        feature = "cuda-11050",
3001        feature = "cuda-11060",
3002        feature = "cuda-11070",
3003        feature = "cuda-11080",
3004        feature = "cuda-12000",
3005        feature = "cuda-12010",
3006        feature = "cuda-12020",
3007        feature = "cuda-12030",
3008        feature = "cuda-12040",
3009        feature = "cuda-12050",
3010        feature = "cuda-12060",
3011        feature = "cuda-12080",
3012        feature = "cuda-12090"
3013    ))]
3014    pub fn cusolverDnPotrf(
3015        handle: cusolverDnHandle_t,
3016        params: cusolverDnParams_t,
3017        uplo: cublasFillMode_t,
3018        n: i64,
3019        dataTypeA: cudaDataType,
3020        A: *mut ::core::ffi::c_void,
3021        lda: i64,
3022        computeType: cudaDataType,
3023        pBuffer: *mut ::core::ffi::c_void,
3024        workspaceInBytes: usize,
3025        info: *mut ::core::ffi::c_int,
3026    ) -> cusolverStatus_t;
3027    #[cfg(any(
3028        feature = "cuda-11040",
3029        feature = "cuda-11050",
3030        feature = "cuda-11060",
3031        feature = "cuda-11070",
3032        feature = "cuda-11080",
3033        feature = "cuda-12000",
3034        feature = "cuda-12010",
3035        feature = "cuda-12020",
3036        feature = "cuda-12030",
3037        feature = "cuda-12040",
3038        feature = "cuda-12050",
3039        feature = "cuda-12060",
3040        feature = "cuda-12080",
3041        feature = "cuda-12090"
3042    ))]
3043    pub fn cusolverDnPotrf_bufferSize(
3044        handle: cusolverDnHandle_t,
3045        params: cusolverDnParams_t,
3046        uplo: cublasFillMode_t,
3047        n: i64,
3048        dataTypeA: cudaDataType,
3049        A: *const ::core::ffi::c_void,
3050        lda: i64,
3051        computeType: cudaDataType,
3052        workspaceInBytes: *mut usize,
3053    ) -> cusolverStatus_t;
3054    #[cfg(any(
3055        feature = "cuda-11040",
3056        feature = "cuda-11050",
3057        feature = "cuda-11060",
3058        feature = "cuda-11070",
3059        feature = "cuda-11080",
3060        feature = "cuda-12000",
3061        feature = "cuda-12010",
3062        feature = "cuda-12020",
3063        feature = "cuda-12030",
3064        feature = "cuda-12040",
3065        feature = "cuda-12050",
3066        feature = "cuda-12060",
3067        feature = "cuda-12080",
3068        feature = "cuda-12090"
3069    ))]
3070    pub fn cusolverDnPotrs(
3071        handle: cusolverDnHandle_t,
3072        params: cusolverDnParams_t,
3073        uplo: cublasFillMode_t,
3074        n: i64,
3075        nrhs: i64,
3076        dataTypeA: cudaDataType,
3077        A: *const ::core::ffi::c_void,
3078        lda: i64,
3079        dataTypeB: cudaDataType,
3080        B: *mut ::core::ffi::c_void,
3081        ldb: i64,
3082        info: *mut ::core::ffi::c_int,
3083    ) -> cusolverStatus_t;
3084    pub fn cusolverDnSBgels(
3085        handle: cusolverDnHandle_t,
3086        m: cusolver_int_t,
3087        n: cusolver_int_t,
3088        nrhs: cusolver_int_t,
3089        dA: *mut f32,
3090        ldda: cusolver_int_t,
3091        dB: *mut f32,
3092        lddb: cusolver_int_t,
3093        dX: *mut f32,
3094        lddx: cusolver_int_t,
3095        dWorkspace: *mut ::core::ffi::c_void,
3096        lwork_bytes: usize,
3097        iter: *mut cusolver_int_t,
3098        d_info: *mut cusolver_int_t,
3099    ) -> cusolverStatus_t;
3100    pub fn cusolverDnSBgels_bufferSize(
3101        handle: cusolverDnHandle_t,
3102        m: cusolver_int_t,
3103        n: cusolver_int_t,
3104        nrhs: cusolver_int_t,
3105        dA: *mut f32,
3106        ldda: cusolver_int_t,
3107        dB: *mut f32,
3108        lddb: cusolver_int_t,
3109        dX: *mut f32,
3110        lddx: cusolver_int_t,
3111        dWorkspace: *mut ::core::ffi::c_void,
3112        lwork_bytes: *mut usize,
3113    ) -> cusolverStatus_t;
3114    pub fn cusolverDnSBgesv(
3115        handle: cusolverDnHandle_t,
3116        n: cusolver_int_t,
3117        nrhs: cusolver_int_t,
3118        dA: *mut f32,
3119        ldda: cusolver_int_t,
3120        dipiv: *mut cusolver_int_t,
3121        dB: *mut f32,
3122        lddb: cusolver_int_t,
3123        dX: *mut f32,
3124        lddx: cusolver_int_t,
3125        dWorkspace: *mut ::core::ffi::c_void,
3126        lwork_bytes: usize,
3127        iter: *mut cusolver_int_t,
3128        d_info: *mut cusolver_int_t,
3129    ) -> cusolverStatus_t;
3130    pub fn cusolverDnSBgesv_bufferSize(
3131        handle: cusolverDnHandle_t,
3132        n: cusolver_int_t,
3133        nrhs: cusolver_int_t,
3134        dA: *mut f32,
3135        ldda: cusolver_int_t,
3136        dipiv: *mut cusolver_int_t,
3137        dB: *mut f32,
3138        lddb: cusolver_int_t,
3139        dX: *mut f32,
3140        lddx: cusolver_int_t,
3141        dWorkspace: *mut ::core::ffi::c_void,
3142        lwork_bytes: *mut usize,
3143    ) -> cusolverStatus_t;
3144    pub fn cusolverDnSHgels(
3145        handle: cusolverDnHandle_t,
3146        m: cusolver_int_t,
3147        n: cusolver_int_t,
3148        nrhs: cusolver_int_t,
3149        dA: *mut f32,
3150        ldda: cusolver_int_t,
3151        dB: *mut f32,
3152        lddb: cusolver_int_t,
3153        dX: *mut f32,
3154        lddx: cusolver_int_t,
3155        dWorkspace: *mut ::core::ffi::c_void,
3156        lwork_bytes: usize,
3157        iter: *mut cusolver_int_t,
3158        d_info: *mut cusolver_int_t,
3159    ) -> cusolverStatus_t;
3160    pub fn cusolverDnSHgels_bufferSize(
3161        handle: cusolverDnHandle_t,
3162        m: cusolver_int_t,
3163        n: cusolver_int_t,
3164        nrhs: cusolver_int_t,
3165        dA: *mut f32,
3166        ldda: cusolver_int_t,
3167        dB: *mut f32,
3168        lddb: cusolver_int_t,
3169        dX: *mut f32,
3170        lddx: cusolver_int_t,
3171        dWorkspace: *mut ::core::ffi::c_void,
3172        lwork_bytes: *mut usize,
3173    ) -> cusolverStatus_t;
3174    pub fn cusolverDnSHgesv(
3175        handle: cusolverDnHandle_t,
3176        n: cusolver_int_t,
3177        nrhs: cusolver_int_t,
3178        dA: *mut f32,
3179        ldda: cusolver_int_t,
3180        dipiv: *mut cusolver_int_t,
3181        dB: *mut f32,
3182        lddb: cusolver_int_t,
3183        dX: *mut f32,
3184        lddx: cusolver_int_t,
3185        dWorkspace: *mut ::core::ffi::c_void,
3186        lwork_bytes: usize,
3187        iter: *mut cusolver_int_t,
3188        d_info: *mut cusolver_int_t,
3189    ) -> cusolverStatus_t;
3190    pub fn cusolverDnSHgesv_bufferSize(
3191        handle: cusolverDnHandle_t,
3192        n: cusolver_int_t,
3193        nrhs: cusolver_int_t,
3194        dA: *mut f32,
3195        ldda: cusolver_int_t,
3196        dipiv: *mut cusolver_int_t,
3197        dB: *mut f32,
3198        lddb: cusolver_int_t,
3199        dX: *mut f32,
3200        lddx: cusolver_int_t,
3201        dWorkspace: *mut ::core::ffi::c_void,
3202        lwork_bytes: *mut usize,
3203    ) -> cusolverStatus_t;
3204    pub fn cusolverDnSSgels(
3205        handle: cusolverDnHandle_t,
3206        m: cusolver_int_t,
3207        n: cusolver_int_t,
3208        nrhs: cusolver_int_t,
3209        dA: *mut f32,
3210        ldda: cusolver_int_t,
3211        dB: *mut f32,
3212        lddb: cusolver_int_t,
3213        dX: *mut f32,
3214        lddx: cusolver_int_t,
3215        dWorkspace: *mut ::core::ffi::c_void,
3216        lwork_bytes: usize,
3217        iter: *mut cusolver_int_t,
3218        d_info: *mut cusolver_int_t,
3219    ) -> cusolverStatus_t;
3220    pub fn cusolverDnSSgels_bufferSize(
3221        handle: cusolverDnHandle_t,
3222        m: cusolver_int_t,
3223        n: cusolver_int_t,
3224        nrhs: cusolver_int_t,
3225        dA: *mut f32,
3226        ldda: cusolver_int_t,
3227        dB: *mut f32,
3228        lddb: cusolver_int_t,
3229        dX: *mut f32,
3230        lddx: cusolver_int_t,
3231        dWorkspace: *mut ::core::ffi::c_void,
3232        lwork_bytes: *mut usize,
3233    ) -> cusolverStatus_t;
3234    pub fn cusolverDnSSgesv(
3235        handle: cusolverDnHandle_t,
3236        n: cusolver_int_t,
3237        nrhs: cusolver_int_t,
3238        dA: *mut f32,
3239        ldda: cusolver_int_t,
3240        dipiv: *mut cusolver_int_t,
3241        dB: *mut f32,
3242        lddb: cusolver_int_t,
3243        dX: *mut f32,
3244        lddx: cusolver_int_t,
3245        dWorkspace: *mut ::core::ffi::c_void,
3246        lwork_bytes: usize,
3247        iter: *mut cusolver_int_t,
3248        d_info: *mut cusolver_int_t,
3249    ) -> cusolverStatus_t;
3250    pub fn cusolverDnSSgesv_bufferSize(
3251        handle: cusolverDnHandle_t,
3252        n: cusolver_int_t,
3253        nrhs: cusolver_int_t,
3254        dA: *mut f32,
3255        ldda: cusolver_int_t,
3256        dipiv: *mut cusolver_int_t,
3257        dB: *mut f32,
3258        lddb: cusolver_int_t,
3259        dX: *mut f32,
3260        lddx: cusolver_int_t,
3261        dWorkspace: *mut ::core::ffi::c_void,
3262        lwork_bytes: *mut usize,
3263    ) -> cusolverStatus_t;
3264    pub fn cusolverDnSXgels(
3265        handle: cusolverDnHandle_t,
3266        m: cusolver_int_t,
3267        n: cusolver_int_t,
3268        nrhs: cusolver_int_t,
3269        dA: *mut f32,
3270        ldda: cusolver_int_t,
3271        dB: *mut f32,
3272        lddb: cusolver_int_t,
3273        dX: *mut f32,
3274        lddx: cusolver_int_t,
3275        dWorkspace: *mut ::core::ffi::c_void,
3276        lwork_bytes: usize,
3277        iter: *mut cusolver_int_t,
3278        d_info: *mut cusolver_int_t,
3279    ) -> cusolverStatus_t;
3280    pub fn cusolverDnSXgels_bufferSize(
3281        handle: cusolverDnHandle_t,
3282        m: cusolver_int_t,
3283        n: cusolver_int_t,
3284        nrhs: cusolver_int_t,
3285        dA: *mut f32,
3286        ldda: cusolver_int_t,
3287        dB: *mut f32,
3288        lddb: cusolver_int_t,
3289        dX: *mut f32,
3290        lddx: cusolver_int_t,
3291        dWorkspace: *mut ::core::ffi::c_void,
3292        lwork_bytes: *mut usize,
3293    ) -> cusolverStatus_t;
3294    pub fn cusolverDnSXgesv(
3295        handle: cusolverDnHandle_t,
3296        n: cusolver_int_t,
3297        nrhs: cusolver_int_t,
3298        dA: *mut f32,
3299        ldda: cusolver_int_t,
3300        dipiv: *mut cusolver_int_t,
3301        dB: *mut f32,
3302        lddb: cusolver_int_t,
3303        dX: *mut f32,
3304        lddx: cusolver_int_t,
3305        dWorkspace: *mut ::core::ffi::c_void,
3306        lwork_bytes: usize,
3307        iter: *mut cusolver_int_t,
3308        d_info: *mut cusolver_int_t,
3309    ) -> cusolverStatus_t;
3310    pub fn cusolverDnSXgesv_bufferSize(
3311        handle: cusolverDnHandle_t,
3312        n: cusolver_int_t,
3313        nrhs: cusolver_int_t,
3314        dA: *mut f32,
3315        ldda: cusolver_int_t,
3316        dipiv: *mut cusolver_int_t,
3317        dB: *mut f32,
3318        lddb: cusolver_int_t,
3319        dX: *mut f32,
3320        lddx: cusolver_int_t,
3321        dWorkspace: *mut ::core::ffi::c_void,
3322        lwork_bytes: *mut usize,
3323    ) -> cusolverStatus_t;
3324    pub fn cusolverDnSetAdvOptions(
3325        params: cusolverDnParams_t,
3326        function: cusolverDnFunction_t,
3327        algo: cusolverAlgMode_t,
3328    ) -> cusolverStatus_t;
3329    #[cfg(any(
3330        feature = "cuda-12020",
3331        feature = "cuda-12030",
3332        feature = "cuda-12040",
3333        feature = "cuda-12050",
3334        feature = "cuda-12060",
3335        feature = "cuda-12080",
3336        feature = "cuda-12090",
3337        feature = "cuda-13000",
3338        feature = "cuda-13010"
3339    ))]
3340    pub fn cusolverDnSetDeterministicMode(
3341        handle: cusolverDnHandle_t,
3342        mode: cusolverDeterministicMode_t,
3343    ) -> cusolverStatus_t;
3344    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
3345    pub fn cusolverDnSetEmulationStrategy(
3346        handle: cusolverDnHandle_t,
3347        strategy: cudaEmulationStrategy_t,
3348    ) -> cusolverStatus_t;
3349    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
3350    pub fn cusolverDnSetMathMode(
3351        handle: cusolverDnHandle_t,
3352        mode: cusolverMathMode_t,
3353    ) -> cusolverStatus_t;
3354    pub fn cusolverDnSetStream(
3355        handle: cusolverDnHandle_t,
3356        streamId: cudaStream_t,
3357    ) -> cusolverStatus_t;
3358    pub fn cusolverDnSgebrd(
3359        handle: cusolverDnHandle_t,
3360        m: ::core::ffi::c_int,
3361        n: ::core::ffi::c_int,
3362        A: *mut f32,
3363        lda: ::core::ffi::c_int,
3364        D: *mut f32,
3365        E: *mut f32,
3366        TAUQ: *mut f32,
3367        TAUP: *mut f32,
3368        Work: *mut f32,
3369        Lwork: ::core::ffi::c_int,
3370        devInfo: *mut ::core::ffi::c_int,
3371    ) -> cusolverStatus_t;
3372    pub fn cusolverDnSgebrd_bufferSize(
3373        handle: cusolverDnHandle_t,
3374        m: ::core::ffi::c_int,
3375        n: ::core::ffi::c_int,
3376        Lwork: *mut ::core::ffi::c_int,
3377    ) -> cusolverStatus_t;
3378    pub fn cusolverDnSgeqrf(
3379        handle: cusolverDnHandle_t,
3380        m: ::core::ffi::c_int,
3381        n: ::core::ffi::c_int,
3382        A: *mut f32,
3383        lda: ::core::ffi::c_int,
3384        TAU: *mut f32,
3385        Workspace: *mut f32,
3386        Lwork: ::core::ffi::c_int,
3387        devInfo: *mut ::core::ffi::c_int,
3388    ) -> cusolverStatus_t;
3389    pub fn cusolverDnSgeqrf_bufferSize(
3390        handle: cusolverDnHandle_t,
3391        m: ::core::ffi::c_int,
3392        n: ::core::ffi::c_int,
3393        A: *mut f32,
3394        lda: ::core::ffi::c_int,
3395        lwork: *mut ::core::ffi::c_int,
3396    ) -> cusolverStatus_t;
3397    pub fn cusolverDnSgesvd(
3398        handle: cusolverDnHandle_t,
3399        jobu: ::core::ffi::c_schar,
3400        jobvt: ::core::ffi::c_schar,
3401        m: ::core::ffi::c_int,
3402        n: ::core::ffi::c_int,
3403        A: *mut f32,
3404        lda: ::core::ffi::c_int,
3405        S: *mut f32,
3406        U: *mut f32,
3407        ldu: ::core::ffi::c_int,
3408        VT: *mut f32,
3409        ldvt: ::core::ffi::c_int,
3410        work: *mut f32,
3411        lwork: ::core::ffi::c_int,
3412        rwork: *mut f32,
3413        info: *mut ::core::ffi::c_int,
3414    ) -> cusolverStatus_t;
3415    pub fn cusolverDnSgesvd_bufferSize(
3416        handle: cusolverDnHandle_t,
3417        m: ::core::ffi::c_int,
3418        n: ::core::ffi::c_int,
3419        lwork: *mut ::core::ffi::c_int,
3420    ) -> cusolverStatus_t;
3421    pub fn cusolverDnSgesvdaStridedBatched(
3422        handle: cusolverDnHandle_t,
3423        jobz: cusolverEigMode_t,
3424        rank: ::core::ffi::c_int,
3425        m: ::core::ffi::c_int,
3426        n: ::core::ffi::c_int,
3427        d_A: *const f32,
3428        lda: ::core::ffi::c_int,
3429        strideA: ::core::ffi::c_longlong,
3430        d_S: *mut f32,
3431        strideS: ::core::ffi::c_longlong,
3432        d_U: *mut f32,
3433        ldu: ::core::ffi::c_int,
3434        strideU: ::core::ffi::c_longlong,
3435        d_V: *mut f32,
3436        ldv: ::core::ffi::c_int,
3437        strideV: ::core::ffi::c_longlong,
3438        d_work: *mut f32,
3439        lwork: ::core::ffi::c_int,
3440        d_info: *mut ::core::ffi::c_int,
3441        h_R_nrmF: *mut f64,
3442        batchSize: ::core::ffi::c_int,
3443    ) -> cusolverStatus_t;
3444    pub fn cusolverDnSgesvdaStridedBatched_bufferSize(
3445        handle: cusolverDnHandle_t,
3446        jobz: cusolverEigMode_t,
3447        rank: ::core::ffi::c_int,
3448        m: ::core::ffi::c_int,
3449        n: ::core::ffi::c_int,
3450        d_A: *const f32,
3451        lda: ::core::ffi::c_int,
3452        strideA: ::core::ffi::c_longlong,
3453        d_S: *const f32,
3454        strideS: ::core::ffi::c_longlong,
3455        d_U: *const f32,
3456        ldu: ::core::ffi::c_int,
3457        strideU: ::core::ffi::c_longlong,
3458        d_V: *const f32,
3459        ldv: ::core::ffi::c_int,
3460        strideV: ::core::ffi::c_longlong,
3461        lwork: *mut ::core::ffi::c_int,
3462        batchSize: ::core::ffi::c_int,
3463    ) -> cusolverStatus_t;
3464    pub fn cusolverDnSgesvdj(
3465        handle: cusolverDnHandle_t,
3466        jobz: cusolverEigMode_t,
3467        econ: ::core::ffi::c_int,
3468        m: ::core::ffi::c_int,
3469        n: ::core::ffi::c_int,
3470        A: *mut f32,
3471        lda: ::core::ffi::c_int,
3472        S: *mut f32,
3473        U: *mut f32,
3474        ldu: ::core::ffi::c_int,
3475        V: *mut f32,
3476        ldv: ::core::ffi::c_int,
3477        work: *mut f32,
3478        lwork: ::core::ffi::c_int,
3479        info: *mut ::core::ffi::c_int,
3480        params: gesvdjInfo_t,
3481    ) -> cusolverStatus_t;
3482    pub fn cusolverDnSgesvdjBatched(
3483        handle: cusolverDnHandle_t,
3484        jobz: cusolverEigMode_t,
3485        m: ::core::ffi::c_int,
3486        n: ::core::ffi::c_int,
3487        A: *mut f32,
3488        lda: ::core::ffi::c_int,
3489        S: *mut f32,
3490        U: *mut f32,
3491        ldu: ::core::ffi::c_int,
3492        V: *mut f32,
3493        ldv: ::core::ffi::c_int,
3494        work: *mut f32,
3495        lwork: ::core::ffi::c_int,
3496        info: *mut ::core::ffi::c_int,
3497        params: gesvdjInfo_t,
3498        batchSize: ::core::ffi::c_int,
3499    ) -> cusolverStatus_t;
3500    pub fn cusolverDnSgesvdjBatched_bufferSize(
3501        handle: cusolverDnHandle_t,
3502        jobz: cusolverEigMode_t,
3503        m: ::core::ffi::c_int,
3504        n: ::core::ffi::c_int,
3505        A: *const f32,
3506        lda: ::core::ffi::c_int,
3507        S: *const f32,
3508        U: *const f32,
3509        ldu: ::core::ffi::c_int,
3510        V: *const f32,
3511        ldv: ::core::ffi::c_int,
3512        lwork: *mut ::core::ffi::c_int,
3513        params: gesvdjInfo_t,
3514        batchSize: ::core::ffi::c_int,
3515    ) -> cusolverStatus_t;
3516    pub fn cusolverDnSgesvdj_bufferSize(
3517        handle: cusolverDnHandle_t,
3518        jobz: cusolverEigMode_t,
3519        econ: ::core::ffi::c_int,
3520        m: ::core::ffi::c_int,
3521        n: ::core::ffi::c_int,
3522        A: *const f32,
3523        lda: ::core::ffi::c_int,
3524        S: *const f32,
3525        U: *const f32,
3526        ldu: ::core::ffi::c_int,
3527        V: *const f32,
3528        ldv: ::core::ffi::c_int,
3529        lwork: *mut ::core::ffi::c_int,
3530        params: gesvdjInfo_t,
3531    ) -> cusolverStatus_t;
3532    pub fn cusolverDnSgetrf(
3533        handle: cusolverDnHandle_t,
3534        m: ::core::ffi::c_int,
3535        n: ::core::ffi::c_int,
3536        A: *mut f32,
3537        lda: ::core::ffi::c_int,
3538        Workspace: *mut f32,
3539        devIpiv: *mut ::core::ffi::c_int,
3540        devInfo: *mut ::core::ffi::c_int,
3541    ) -> cusolverStatus_t;
3542    pub fn cusolverDnSgetrf_bufferSize(
3543        handle: cusolverDnHandle_t,
3544        m: ::core::ffi::c_int,
3545        n: ::core::ffi::c_int,
3546        A: *mut f32,
3547        lda: ::core::ffi::c_int,
3548        Lwork: *mut ::core::ffi::c_int,
3549    ) -> cusolverStatus_t;
3550    pub fn cusolverDnSgetrs(
3551        handle: cusolverDnHandle_t,
3552        trans: cublasOperation_t,
3553        n: ::core::ffi::c_int,
3554        nrhs: ::core::ffi::c_int,
3555        A: *const f32,
3556        lda: ::core::ffi::c_int,
3557        devIpiv: *const ::core::ffi::c_int,
3558        B: *mut f32,
3559        ldb: ::core::ffi::c_int,
3560        devInfo: *mut ::core::ffi::c_int,
3561    ) -> cusolverStatus_t;
3562    pub fn cusolverDnSlaswp(
3563        handle: cusolverDnHandle_t,
3564        n: ::core::ffi::c_int,
3565        A: *mut f32,
3566        lda: ::core::ffi::c_int,
3567        k1: ::core::ffi::c_int,
3568        k2: ::core::ffi::c_int,
3569        devIpiv: *const ::core::ffi::c_int,
3570        incx: ::core::ffi::c_int,
3571    ) -> cusolverStatus_t;
3572    pub fn cusolverDnSlauum(
3573        handle: cusolverDnHandle_t,
3574        uplo: cublasFillMode_t,
3575        n: ::core::ffi::c_int,
3576        A: *mut f32,
3577        lda: ::core::ffi::c_int,
3578        work: *mut f32,
3579        lwork: ::core::ffi::c_int,
3580        devInfo: *mut ::core::ffi::c_int,
3581    ) -> cusolverStatus_t;
3582    pub fn cusolverDnSlauum_bufferSize(
3583        handle: cusolverDnHandle_t,
3584        uplo: cublasFillMode_t,
3585        n: ::core::ffi::c_int,
3586        A: *mut f32,
3587        lda: ::core::ffi::c_int,
3588        lwork: *mut ::core::ffi::c_int,
3589    ) -> cusolverStatus_t;
3590    pub fn cusolverDnSorgbr(
3591        handle: cusolverDnHandle_t,
3592        side: cublasSideMode_t,
3593        m: ::core::ffi::c_int,
3594        n: ::core::ffi::c_int,
3595        k: ::core::ffi::c_int,
3596        A: *mut f32,
3597        lda: ::core::ffi::c_int,
3598        tau: *const f32,
3599        work: *mut f32,
3600        lwork: ::core::ffi::c_int,
3601        info: *mut ::core::ffi::c_int,
3602    ) -> cusolverStatus_t;
3603    pub fn cusolverDnSorgbr_bufferSize(
3604        handle: cusolverDnHandle_t,
3605        side: cublasSideMode_t,
3606        m: ::core::ffi::c_int,
3607        n: ::core::ffi::c_int,
3608        k: ::core::ffi::c_int,
3609        A: *const f32,
3610        lda: ::core::ffi::c_int,
3611        tau: *const f32,
3612        lwork: *mut ::core::ffi::c_int,
3613    ) -> cusolverStatus_t;
3614    pub fn cusolverDnSorgqr(
3615        handle: cusolverDnHandle_t,
3616        m: ::core::ffi::c_int,
3617        n: ::core::ffi::c_int,
3618        k: ::core::ffi::c_int,
3619        A: *mut f32,
3620        lda: ::core::ffi::c_int,
3621        tau: *const f32,
3622        work: *mut f32,
3623        lwork: ::core::ffi::c_int,
3624        info: *mut ::core::ffi::c_int,
3625    ) -> cusolverStatus_t;
3626    pub fn cusolverDnSorgqr_bufferSize(
3627        handle: cusolverDnHandle_t,
3628        m: ::core::ffi::c_int,
3629        n: ::core::ffi::c_int,
3630        k: ::core::ffi::c_int,
3631        A: *const f32,
3632        lda: ::core::ffi::c_int,
3633        tau: *const f32,
3634        lwork: *mut ::core::ffi::c_int,
3635    ) -> cusolverStatus_t;
3636    pub fn cusolverDnSorgtr(
3637        handle: cusolverDnHandle_t,
3638        uplo: cublasFillMode_t,
3639        n: ::core::ffi::c_int,
3640        A: *mut f32,
3641        lda: ::core::ffi::c_int,
3642        tau: *const f32,
3643        work: *mut f32,
3644        lwork: ::core::ffi::c_int,
3645        info: *mut ::core::ffi::c_int,
3646    ) -> cusolverStatus_t;
3647    pub fn cusolverDnSorgtr_bufferSize(
3648        handle: cusolverDnHandle_t,
3649        uplo: cublasFillMode_t,
3650        n: ::core::ffi::c_int,
3651        A: *const f32,
3652        lda: ::core::ffi::c_int,
3653        tau: *const f32,
3654        lwork: *mut ::core::ffi::c_int,
3655    ) -> cusolverStatus_t;
3656    pub fn cusolverDnSormqr(
3657        handle: cusolverDnHandle_t,
3658        side: cublasSideMode_t,
3659        trans: cublasOperation_t,
3660        m: ::core::ffi::c_int,
3661        n: ::core::ffi::c_int,
3662        k: ::core::ffi::c_int,
3663        A: *const f32,
3664        lda: ::core::ffi::c_int,
3665        tau: *const f32,
3666        C: *mut f32,
3667        ldc: ::core::ffi::c_int,
3668        work: *mut f32,
3669        lwork: ::core::ffi::c_int,
3670        devInfo: *mut ::core::ffi::c_int,
3671    ) -> cusolverStatus_t;
3672    pub fn cusolverDnSormqr_bufferSize(
3673        handle: cusolverDnHandle_t,
3674        side: cublasSideMode_t,
3675        trans: cublasOperation_t,
3676        m: ::core::ffi::c_int,
3677        n: ::core::ffi::c_int,
3678        k: ::core::ffi::c_int,
3679        A: *const f32,
3680        lda: ::core::ffi::c_int,
3681        tau: *const f32,
3682        C: *const f32,
3683        ldc: ::core::ffi::c_int,
3684        lwork: *mut ::core::ffi::c_int,
3685    ) -> cusolverStatus_t;
3686    pub fn cusolverDnSormtr(
3687        handle: cusolverDnHandle_t,
3688        side: cublasSideMode_t,
3689        uplo: cublasFillMode_t,
3690        trans: cublasOperation_t,
3691        m: ::core::ffi::c_int,
3692        n: ::core::ffi::c_int,
3693        A: *mut f32,
3694        lda: ::core::ffi::c_int,
3695        tau: *mut f32,
3696        C: *mut f32,
3697        ldc: ::core::ffi::c_int,
3698        work: *mut f32,
3699        lwork: ::core::ffi::c_int,
3700        info: *mut ::core::ffi::c_int,
3701    ) -> cusolverStatus_t;
3702    pub fn cusolverDnSormtr_bufferSize(
3703        handle: cusolverDnHandle_t,
3704        side: cublasSideMode_t,
3705        uplo: cublasFillMode_t,
3706        trans: cublasOperation_t,
3707        m: ::core::ffi::c_int,
3708        n: ::core::ffi::c_int,
3709        A: *const f32,
3710        lda: ::core::ffi::c_int,
3711        tau: *const f32,
3712        C: *const f32,
3713        ldc: ::core::ffi::c_int,
3714        lwork: *mut ::core::ffi::c_int,
3715    ) -> cusolverStatus_t;
3716    pub fn cusolverDnSpotrf(
3717        handle: cusolverDnHandle_t,
3718        uplo: cublasFillMode_t,
3719        n: ::core::ffi::c_int,
3720        A: *mut f32,
3721        lda: ::core::ffi::c_int,
3722        Workspace: *mut f32,
3723        Lwork: ::core::ffi::c_int,
3724        devInfo: *mut ::core::ffi::c_int,
3725    ) -> cusolverStatus_t;
3726    pub fn cusolverDnSpotrfBatched(
3727        handle: cusolverDnHandle_t,
3728        uplo: cublasFillMode_t,
3729        n: ::core::ffi::c_int,
3730        Aarray: *mut *mut f32,
3731        lda: ::core::ffi::c_int,
3732        infoArray: *mut ::core::ffi::c_int,
3733        batchSize: ::core::ffi::c_int,
3734    ) -> cusolverStatus_t;
3735    pub fn cusolverDnSpotrf_bufferSize(
3736        handle: cusolverDnHandle_t,
3737        uplo: cublasFillMode_t,
3738        n: ::core::ffi::c_int,
3739        A: *mut f32,
3740        lda: ::core::ffi::c_int,
3741        Lwork: *mut ::core::ffi::c_int,
3742    ) -> cusolverStatus_t;
3743    pub fn cusolverDnSpotri(
3744        handle: cusolverDnHandle_t,
3745        uplo: cublasFillMode_t,
3746        n: ::core::ffi::c_int,
3747        A: *mut f32,
3748        lda: ::core::ffi::c_int,
3749        work: *mut f32,
3750        lwork: ::core::ffi::c_int,
3751        devInfo: *mut ::core::ffi::c_int,
3752    ) -> cusolverStatus_t;
3753    pub fn cusolverDnSpotri_bufferSize(
3754        handle: cusolverDnHandle_t,
3755        uplo: cublasFillMode_t,
3756        n: ::core::ffi::c_int,
3757        A: *mut f32,
3758        lda: ::core::ffi::c_int,
3759        lwork: *mut ::core::ffi::c_int,
3760    ) -> cusolverStatus_t;
3761    pub fn cusolverDnSpotrs(
3762        handle: cusolverDnHandle_t,
3763        uplo: cublasFillMode_t,
3764        n: ::core::ffi::c_int,
3765        nrhs: ::core::ffi::c_int,
3766        A: *const f32,
3767        lda: ::core::ffi::c_int,
3768        B: *mut f32,
3769        ldb: ::core::ffi::c_int,
3770        devInfo: *mut ::core::ffi::c_int,
3771    ) -> cusolverStatus_t;
3772    pub fn cusolverDnSpotrsBatched(
3773        handle: cusolverDnHandle_t,
3774        uplo: cublasFillMode_t,
3775        n: ::core::ffi::c_int,
3776        nrhs: ::core::ffi::c_int,
3777        A: *mut *mut f32,
3778        lda: ::core::ffi::c_int,
3779        B: *mut *mut f32,
3780        ldb: ::core::ffi::c_int,
3781        d_info: *mut ::core::ffi::c_int,
3782        batchSize: ::core::ffi::c_int,
3783    ) -> cusolverStatus_t;
3784    pub fn cusolverDnSsyevd(
3785        handle: cusolverDnHandle_t,
3786        jobz: cusolverEigMode_t,
3787        uplo: cublasFillMode_t,
3788        n: ::core::ffi::c_int,
3789        A: *mut f32,
3790        lda: ::core::ffi::c_int,
3791        W: *mut f32,
3792        work: *mut f32,
3793        lwork: ::core::ffi::c_int,
3794        info: *mut ::core::ffi::c_int,
3795    ) -> cusolverStatus_t;
3796    pub fn cusolverDnSsyevd_bufferSize(
3797        handle: cusolverDnHandle_t,
3798        jobz: cusolverEigMode_t,
3799        uplo: cublasFillMode_t,
3800        n: ::core::ffi::c_int,
3801        A: *const f32,
3802        lda: ::core::ffi::c_int,
3803        W: *const f32,
3804        lwork: *mut ::core::ffi::c_int,
3805    ) -> cusolverStatus_t;
3806    pub fn cusolverDnSsyevdx(
3807        handle: cusolverDnHandle_t,
3808        jobz: cusolverEigMode_t,
3809        range: cusolverEigRange_t,
3810        uplo: cublasFillMode_t,
3811        n: ::core::ffi::c_int,
3812        A: *mut f32,
3813        lda: ::core::ffi::c_int,
3814        vl: f32,
3815        vu: f32,
3816        il: ::core::ffi::c_int,
3817        iu: ::core::ffi::c_int,
3818        meig: *mut ::core::ffi::c_int,
3819        W: *mut f32,
3820        work: *mut f32,
3821        lwork: ::core::ffi::c_int,
3822        info: *mut ::core::ffi::c_int,
3823    ) -> cusolverStatus_t;
3824    pub fn cusolverDnSsyevdx_bufferSize(
3825        handle: cusolverDnHandle_t,
3826        jobz: cusolverEigMode_t,
3827        range: cusolverEigRange_t,
3828        uplo: cublasFillMode_t,
3829        n: ::core::ffi::c_int,
3830        A: *const f32,
3831        lda: ::core::ffi::c_int,
3832        vl: f32,
3833        vu: f32,
3834        il: ::core::ffi::c_int,
3835        iu: ::core::ffi::c_int,
3836        meig: *mut ::core::ffi::c_int,
3837        W: *const f32,
3838        lwork: *mut ::core::ffi::c_int,
3839    ) -> cusolverStatus_t;
3840    pub fn cusolverDnSsyevj(
3841        handle: cusolverDnHandle_t,
3842        jobz: cusolverEigMode_t,
3843        uplo: cublasFillMode_t,
3844        n: ::core::ffi::c_int,
3845        A: *mut f32,
3846        lda: ::core::ffi::c_int,
3847        W: *mut f32,
3848        work: *mut f32,
3849        lwork: ::core::ffi::c_int,
3850        info: *mut ::core::ffi::c_int,
3851        params: syevjInfo_t,
3852    ) -> cusolverStatus_t;
3853    pub fn cusolverDnSsyevjBatched(
3854        handle: cusolverDnHandle_t,
3855        jobz: cusolverEigMode_t,
3856        uplo: cublasFillMode_t,
3857        n: ::core::ffi::c_int,
3858        A: *mut f32,
3859        lda: ::core::ffi::c_int,
3860        W: *mut f32,
3861        work: *mut f32,
3862        lwork: ::core::ffi::c_int,
3863        info: *mut ::core::ffi::c_int,
3864        params: syevjInfo_t,
3865        batchSize: ::core::ffi::c_int,
3866    ) -> cusolverStatus_t;
3867    pub fn cusolverDnSsyevjBatched_bufferSize(
3868        handle: cusolverDnHandle_t,
3869        jobz: cusolverEigMode_t,
3870        uplo: cublasFillMode_t,
3871        n: ::core::ffi::c_int,
3872        A: *const f32,
3873        lda: ::core::ffi::c_int,
3874        W: *const f32,
3875        lwork: *mut ::core::ffi::c_int,
3876        params: syevjInfo_t,
3877        batchSize: ::core::ffi::c_int,
3878    ) -> cusolverStatus_t;
3879    pub fn cusolverDnSsyevj_bufferSize(
3880        handle: cusolverDnHandle_t,
3881        jobz: cusolverEigMode_t,
3882        uplo: cublasFillMode_t,
3883        n: ::core::ffi::c_int,
3884        A: *const f32,
3885        lda: ::core::ffi::c_int,
3886        W: *const f32,
3887        lwork: *mut ::core::ffi::c_int,
3888        params: syevjInfo_t,
3889    ) -> cusolverStatus_t;
3890    pub fn cusolverDnSsygvd(
3891        handle: cusolverDnHandle_t,
3892        itype: cusolverEigType_t,
3893        jobz: cusolverEigMode_t,
3894        uplo: cublasFillMode_t,
3895        n: ::core::ffi::c_int,
3896        A: *mut f32,
3897        lda: ::core::ffi::c_int,
3898        B: *mut f32,
3899        ldb: ::core::ffi::c_int,
3900        W: *mut f32,
3901        work: *mut f32,
3902        lwork: ::core::ffi::c_int,
3903        info: *mut ::core::ffi::c_int,
3904    ) -> cusolverStatus_t;
3905    pub fn cusolverDnSsygvd_bufferSize(
3906        handle: cusolverDnHandle_t,
3907        itype: cusolverEigType_t,
3908        jobz: cusolverEigMode_t,
3909        uplo: cublasFillMode_t,
3910        n: ::core::ffi::c_int,
3911        A: *const f32,
3912        lda: ::core::ffi::c_int,
3913        B: *const f32,
3914        ldb: ::core::ffi::c_int,
3915        W: *const f32,
3916        lwork: *mut ::core::ffi::c_int,
3917    ) -> cusolverStatus_t;
3918    pub fn cusolverDnSsygvdx(
3919        handle: cusolverDnHandle_t,
3920        itype: cusolverEigType_t,
3921        jobz: cusolverEigMode_t,
3922        range: cusolverEigRange_t,
3923        uplo: cublasFillMode_t,
3924        n: ::core::ffi::c_int,
3925        A: *mut f32,
3926        lda: ::core::ffi::c_int,
3927        B: *mut f32,
3928        ldb: ::core::ffi::c_int,
3929        vl: f32,
3930        vu: f32,
3931        il: ::core::ffi::c_int,
3932        iu: ::core::ffi::c_int,
3933        meig: *mut ::core::ffi::c_int,
3934        W: *mut f32,
3935        work: *mut f32,
3936        lwork: ::core::ffi::c_int,
3937        info: *mut ::core::ffi::c_int,
3938    ) -> cusolverStatus_t;
3939    pub fn cusolverDnSsygvdx_bufferSize(
3940        handle: cusolverDnHandle_t,
3941        itype: cusolverEigType_t,
3942        jobz: cusolverEigMode_t,
3943        range: cusolverEigRange_t,
3944        uplo: cublasFillMode_t,
3945        n: ::core::ffi::c_int,
3946        A: *const f32,
3947        lda: ::core::ffi::c_int,
3948        B: *const f32,
3949        ldb: ::core::ffi::c_int,
3950        vl: f32,
3951        vu: f32,
3952        il: ::core::ffi::c_int,
3953        iu: ::core::ffi::c_int,
3954        meig: *mut ::core::ffi::c_int,
3955        W: *const f32,
3956        lwork: *mut ::core::ffi::c_int,
3957    ) -> cusolverStatus_t;
3958    pub fn cusolverDnSsygvj(
3959        handle: cusolverDnHandle_t,
3960        itype: cusolverEigType_t,
3961        jobz: cusolverEigMode_t,
3962        uplo: cublasFillMode_t,
3963        n: ::core::ffi::c_int,
3964        A: *mut f32,
3965        lda: ::core::ffi::c_int,
3966        B: *mut f32,
3967        ldb: ::core::ffi::c_int,
3968        W: *mut f32,
3969        work: *mut f32,
3970        lwork: ::core::ffi::c_int,
3971        info: *mut ::core::ffi::c_int,
3972        params: syevjInfo_t,
3973    ) -> cusolverStatus_t;
3974    pub fn cusolverDnSsygvj_bufferSize(
3975        handle: cusolverDnHandle_t,
3976        itype: cusolverEigType_t,
3977        jobz: cusolverEigMode_t,
3978        uplo: cublasFillMode_t,
3979        n: ::core::ffi::c_int,
3980        A: *const f32,
3981        lda: ::core::ffi::c_int,
3982        B: *const f32,
3983        ldb: ::core::ffi::c_int,
3984        W: *const f32,
3985        lwork: *mut ::core::ffi::c_int,
3986        params: syevjInfo_t,
3987    ) -> cusolverStatus_t;
3988    pub fn cusolverDnSsytrd(
3989        handle: cusolverDnHandle_t,
3990        uplo: cublasFillMode_t,
3991        n: ::core::ffi::c_int,
3992        A: *mut f32,
3993        lda: ::core::ffi::c_int,
3994        d: *mut f32,
3995        e: *mut f32,
3996        tau: *mut f32,
3997        work: *mut f32,
3998        lwork: ::core::ffi::c_int,
3999        info: *mut ::core::ffi::c_int,
4000    ) -> cusolverStatus_t;
4001    pub fn cusolverDnSsytrd_bufferSize(
4002        handle: cusolverDnHandle_t,
4003        uplo: cublasFillMode_t,
4004        n: ::core::ffi::c_int,
4005        A: *const f32,
4006        lda: ::core::ffi::c_int,
4007        d: *const f32,
4008        e: *const f32,
4009        tau: *const f32,
4010        lwork: *mut ::core::ffi::c_int,
4011    ) -> cusolverStatus_t;
4012    pub fn cusolverDnSsytrf(
4013        handle: cusolverDnHandle_t,
4014        uplo: cublasFillMode_t,
4015        n: ::core::ffi::c_int,
4016        A: *mut f32,
4017        lda: ::core::ffi::c_int,
4018        ipiv: *mut ::core::ffi::c_int,
4019        work: *mut f32,
4020        lwork: ::core::ffi::c_int,
4021        info: *mut ::core::ffi::c_int,
4022    ) -> cusolverStatus_t;
4023    pub fn cusolverDnSsytrf_bufferSize(
4024        handle: cusolverDnHandle_t,
4025        n: ::core::ffi::c_int,
4026        A: *mut f32,
4027        lda: ::core::ffi::c_int,
4028        lwork: *mut ::core::ffi::c_int,
4029    ) -> cusolverStatus_t;
4030    pub fn cusolverDnSsytri(
4031        handle: cusolverDnHandle_t,
4032        uplo: cublasFillMode_t,
4033        n: ::core::ffi::c_int,
4034        A: *mut f32,
4035        lda: ::core::ffi::c_int,
4036        ipiv: *const ::core::ffi::c_int,
4037        work: *mut f32,
4038        lwork: ::core::ffi::c_int,
4039        info: *mut ::core::ffi::c_int,
4040    ) -> cusolverStatus_t;
4041    pub fn cusolverDnSsytri_bufferSize(
4042        handle: cusolverDnHandle_t,
4043        uplo: cublasFillMode_t,
4044        n: ::core::ffi::c_int,
4045        A: *mut f32,
4046        lda: ::core::ffi::c_int,
4047        ipiv: *const ::core::ffi::c_int,
4048        lwork: *mut ::core::ffi::c_int,
4049    ) -> cusolverStatus_t;
4050    #[cfg(any(
4051        feature = "cuda-11040",
4052        feature = "cuda-11050",
4053        feature = "cuda-11060",
4054        feature = "cuda-11070",
4055        feature = "cuda-11080",
4056        feature = "cuda-12000",
4057        feature = "cuda-12010",
4058        feature = "cuda-12020",
4059        feature = "cuda-12030",
4060        feature = "cuda-12040",
4061        feature = "cuda-12050",
4062        feature = "cuda-12060",
4063        feature = "cuda-12080",
4064        feature = "cuda-12090"
4065    ))]
4066    pub fn cusolverDnSyevd(
4067        handle: cusolverDnHandle_t,
4068        params: cusolverDnParams_t,
4069        jobz: cusolverEigMode_t,
4070        uplo: cublasFillMode_t,
4071        n: i64,
4072        dataTypeA: cudaDataType,
4073        A: *mut ::core::ffi::c_void,
4074        lda: i64,
4075        dataTypeW: cudaDataType,
4076        W: *mut ::core::ffi::c_void,
4077        computeType: cudaDataType,
4078        pBuffer: *mut ::core::ffi::c_void,
4079        workspaceInBytes: usize,
4080        info: *mut ::core::ffi::c_int,
4081    ) -> cusolverStatus_t;
4082    #[cfg(any(
4083        feature = "cuda-11040",
4084        feature = "cuda-11050",
4085        feature = "cuda-11060",
4086        feature = "cuda-11070",
4087        feature = "cuda-11080",
4088        feature = "cuda-12000",
4089        feature = "cuda-12010",
4090        feature = "cuda-12020",
4091        feature = "cuda-12030",
4092        feature = "cuda-12040",
4093        feature = "cuda-12050",
4094        feature = "cuda-12060",
4095        feature = "cuda-12080",
4096        feature = "cuda-12090"
4097    ))]
4098    pub fn cusolverDnSyevd_bufferSize(
4099        handle: cusolverDnHandle_t,
4100        params: cusolverDnParams_t,
4101        jobz: cusolverEigMode_t,
4102        uplo: cublasFillMode_t,
4103        n: i64,
4104        dataTypeA: cudaDataType,
4105        A: *const ::core::ffi::c_void,
4106        lda: i64,
4107        dataTypeW: cudaDataType,
4108        W: *const ::core::ffi::c_void,
4109        computeType: cudaDataType,
4110        workspaceInBytes: *mut usize,
4111    ) -> cusolverStatus_t;
4112    #[cfg(any(
4113        feature = "cuda-11040",
4114        feature = "cuda-11050",
4115        feature = "cuda-11060",
4116        feature = "cuda-11070",
4117        feature = "cuda-11080",
4118        feature = "cuda-12000",
4119        feature = "cuda-12010",
4120        feature = "cuda-12020",
4121        feature = "cuda-12030",
4122        feature = "cuda-12040",
4123        feature = "cuda-12050",
4124        feature = "cuda-12060",
4125        feature = "cuda-12080",
4126        feature = "cuda-12090"
4127    ))]
4128    pub fn cusolverDnSyevdx(
4129        handle: cusolverDnHandle_t,
4130        params: cusolverDnParams_t,
4131        jobz: cusolverEigMode_t,
4132        range: cusolverEigRange_t,
4133        uplo: cublasFillMode_t,
4134        n: i64,
4135        dataTypeA: cudaDataType,
4136        A: *mut ::core::ffi::c_void,
4137        lda: i64,
4138        vl: *mut ::core::ffi::c_void,
4139        vu: *mut ::core::ffi::c_void,
4140        il: i64,
4141        iu: i64,
4142        meig64: *mut i64,
4143        dataTypeW: cudaDataType,
4144        W: *mut ::core::ffi::c_void,
4145        computeType: cudaDataType,
4146        pBuffer: *mut ::core::ffi::c_void,
4147        workspaceInBytes: usize,
4148        info: *mut ::core::ffi::c_int,
4149    ) -> cusolverStatus_t;
4150    #[cfg(any(
4151        feature = "cuda-11040",
4152        feature = "cuda-11050",
4153        feature = "cuda-11060",
4154        feature = "cuda-11070",
4155        feature = "cuda-11080",
4156        feature = "cuda-12000",
4157        feature = "cuda-12010",
4158        feature = "cuda-12020",
4159        feature = "cuda-12030",
4160        feature = "cuda-12040",
4161        feature = "cuda-12050",
4162        feature = "cuda-12060",
4163        feature = "cuda-12080",
4164        feature = "cuda-12090"
4165    ))]
4166    pub fn cusolverDnSyevdx_bufferSize(
4167        handle: cusolverDnHandle_t,
4168        params: cusolverDnParams_t,
4169        jobz: cusolverEigMode_t,
4170        range: cusolverEigRange_t,
4171        uplo: cublasFillMode_t,
4172        n: i64,
4173        dataTypeA: cudaDataType,
4174        A: *const ::core::ffi::c_void,
4175        lda: i64,
4176        vl: *mut ::core::ffi::c_void,
4177        vu: *mut ::core::ffi::c_void,
4178        il: i64,
4179        iu: i64,
4180        h_meig: *mut i64,
4181        dataTypeW: cudaDataType,
4182        W: *const ::core::ffi::c_void,
4183        computeType: cudaDataType,
4184        workspaceInBytes: *mut usize,
4185    ) -> cusolverStatus_t;
4186    #[cfg(any(
4187        feature = "cuda-12060",
4188        feature = "cuda-12080",
4189        feature = "cuda-12090",
4190        feature = "cuda-13000",
4191        feature = "cuda-13010"
4192    ))]
4193    pub fn cusolverDnXgeev(
4194        handle: cusolverDnHandle_t,
4195        params: cusolverDnParams_t,
4196        jobvl: cusolverEigMode_t,
4197        jobvr: cusolverEigMode_t,
4198        n: i64,
4199        dataTypeA: cudaDataType,
4200        A: *mut ::core::ffi::c_void,
4201        lda: i64,
4202        dataTypeW: cudaDataType,
4203        W: *mut ::core::ffi::c_void,
4204        dataTypeVL: cudaDataType,
4205        VL: *mut ::core::ffi::c_void,
4206        ldvl: i64,
4207        dataTypeVR: cudaDataType,
4208        VR: *mut ::core::ffi::c_void,
4209        ldvr: i64,
4210        computeType: cudaDataType,
4211        bufferOnDevice: *mut ::core::ffi::c_void,
4212        workspaceInBytesOnDevice: usize,
4213        bufferOnHost: *mut ::core::ffi::c_void,
4214        workspaceInBytesOnHost: usize,
4215        info: *mut ::core::ffi::c_int,
4216    ) -> cusolverStatus_t;
4217    #[cfg(any(
4218        feature = "cuda-12060",
4219        feature = "cuda-12080",
4220        feature = "cuda-12090",
4221        feature = "cuda-13000",
4222        feature = "cuda-13010"
4223    ))]
4224    pub fn cusolverDnXgeev_bufferSize(
4225        handle: cusolverDnHandle_t,
4226        params: cusolverDnParams_t,
4227        jobvl: cusolverEigMode_t,
4228        jobvr: cusolverEigMode_t,
4229        n: i64,
4230        dataTypeA: cudaDataType,
4231        A: *const ::core::ffi::c_void,
4232        lda: i64,
4233        dataTypeW: cudaDataType,
4234        W: *const ::core::ffi::c_void,
4235        dataTypeVL: cudaDataType,
4236        VL: *const ::core::ffi::c_void,
4237        ldvl: i64,
4238        dataTypeVR: cudaDataType,
4239        VR: *const ::core::ffi::c_void,
4240        ldvr: i64,
4241        computeType: cudaDataType,
4242        workspaceInBytesOnDevice: *mut usize,
4243        workspaceInBytesOnHost: *mut usize,
4244    ) -> cusolverStatus_t;
4245    pub fn cusolverDnXgeqrf(
4246        handle: cusolverDnHandle_t,
4247        params: cusolverDnParams_t,
4248        m: i64,
4249        n: i64,
4250        dataTypeA: cudaDataType,
4251        A: *mut ::core::ffi::c_void,
4252        lda: i64,
4253        dataTypeTau: cudaDataType,
4254        tau: *mut ::core::ffi::c_void,
4255        computeType: cudaDataType,
4256        bufferOnDevice: *mut ::core::ffi::c_void,
4257        workspaceInBytesOnDevice: usize,
4258        bufferOnHost: *mut ::core::ffi::c_void,
4259        workspaceInBytesOnHost: usize,
4260        info: *mut ::core::ffi::c_int,
4261    ) -> cusolverStatus_t;
4262    pub fn cusolverDnXgeqrf_bufferSize(
4263        handle: cusolverDnHandle_t,
4264        params: cusolverDnParams_t,
4265        m: i64,
4266        n: i64,
4267        dataTypeA: cudaDataType,
4268        A: *const ::core::ffi::c_void,
4269        lda: i64,
4270        dataTypeTau: cudaDataType,
4271        tau: *const ::core::ffi::c_void,
4272        computeType: cudaDataType,
4273        workspaceInBytesOnDevice: *mut usize,
4274        workspaceInBytesOnHost: *mut usize,
4275    ) -> cusolverStatus_t;
4276    pub fn cusolverDnXgesvd(
4277        handle: cusolverDnHandle_t,
4278        params: cusolverDnParams_t,
4279        jobu: ::core::ffi::c_schar,
4280        jobvt: ::core::ffi::c_schar,
4281        m: i64,
4282        n: i64,
4283        dataTypeA: cudaDataType,
4284        A: *mut ::core::ffi::c_void,
4285        lda: i64,
4286        dataTypeS: cudaDataType,
4287        S: *mut ::core::ffi::c_void,
4288        dataTypeU: cudaDataType,
4289        U: *mut ::core::ffi::c_void,
4290        ldu: i64,
4291        dataTypeVT: cudaDataType,
4292        VT: *mut ::core::ffi::c_void,
4293        ldvt: i64,
4294        computeType: cudaDataType,
4295        bufferOnDevice: *mut ::core::ffi::c_void,
4296        workspaceInBytesOnDevice: usize,
4297        bufferOnHost: *mut ::core::ffi::c_void,
4298        workspaceInBytesOnHost: usize,
4299        info: *mut ::core::ffi::c_int,
4300    ) -> cusolverStatus_t;
4301    pub fn cusolverDnXgesvd_bufferSize(
4302        handle: cusolverDnHandle_t,
4303        params: cusolverDnParams_t,
4304        jobu: ::core::ffi::c_schar,
4305        jobvt: ::core::ffi::c_schar,
4306        m: i64,
4307        n: i64,
4308        dataTypeA: cudaDataType,
4309        A: *const ::core::ffi::c_void,
4310        lda: i64,
4311        dataTypeS: cudaDataType,
4312        S: *const ::core::ffi::c_void,
4313        dataTypeU: cudaDataType,
4314        U: *const ::core::ffi::c_void,
4315        ldu: i64,
4316        dataTypeVT: cudaDataType,
4317        VT: *const ::core::ffi::c_void,
4318        ldvt: i64,
4319        computeType: cudaDataType,
4320        workspaceInBytesOnDevice: *mut usize,
4321        workspaceInBytesOnHost: *mut usize,
4322    ) -> cusolverStatus_t;
4323    pub fn cusolverDnXgesvdjGetResidual(
4324        handle: cusolverDnHandle_t,
4325        info: gesvdjInfo_t,
4326        residual: *mut f64,
4327    ) -> cusolverStatus_t;
4328    pub fn cusolverDnXgesvdjGetSweeps(
4329        handle: cusolverDnHandle_t,
4330        info: gesvdjInfo_t,
4331        executed_sweeps: *mut ::core::ffi::c_int,
4332    ) -> cusolverStatus_t;
4333    pub fn cusolverDnXgesvdjSetMaxSweeps(
4334        info: gesvdjInfo_t,
4335        max_sweeps: ::core::ffi::c_int,
4336    ) -> cusolverStatus_t;
4337    pub fn cusolverDnXgesvdjSetSortEig(
4338        info: gesvdjInfo_t,
4339        sort_svd: ::core::ffi::c_int,
4340    ) -> cusolverStatus_t;
4341    pub fn cusolverDnXgesvdjSetTolerance(info: gesvdjInfo_t, tolerance: f64) -> cusolverStatus_t;
4342    pub fn cusolverDnXgesvdp(
4343        handle: cusolverDnHandle_t,
4344        params: cusolverDnParams_t,
4345        jobz: cusolverEigMode_t,
4346        econ: ::core::ffi::c_int,
4347        m: i64,
4348        n: i64,
4349        dataTypeA: cudaDataType,
4350        A: *mut ::core::ffi::c_void,
4351        lda: i64,
4352        dataTypeS: cudaDataType,
4353        S: *mut ::core::ffi::c_void,
4354        dataTypeU: cudaDataType,
4355        U: *mut ::core::ffi::c_void,
4356        ldu: i64,
4357        dataTypeV: cudaDataType,
4358        V: *mut ::core::ffi::c_void,
4359        ldv: i64,
4360        computeType: cudaDataType,
4361        bufferOnDevice: *mut ::core::ffi::c_void,
4362        workspaceInBytesOnDevice: usize,
4363        bufferOnHost: *mut ::core::ffi::c_void,
4364        workspaceInBytesOnHost: usize,
4365        d_info: *mut ::core::ffi::c_int,
4366        h_err_sigma: *mut f64,
4367    ) -> cusolverStatus_t;
4368    pub fn cusolverDnXgesvdp_bufferSize(
4369        handle: cusolverDnHandle_t,
4370        params: cusolverDnParams_t,
4371        jobz: cusolverEigMode_t,
4372        econ: ::core::ffi::c_int,
4373        m: i64,
4374        n: i64,
4375        dataTypeA: cudaDataType,
4376        A: *const ::core::ffi::c_void,
4377        lda: i64,
4378        dataTypeS: cudaDataType,
4379        S: *const ::core::ffi::c_void,
4380        dataTypeU: cudaDataType,
4381        U: *const ::core::ffi::c_void,
4382        ldu: i64,
4383        dataTypeV: cudaDataType,
4384        V: *const ::core::ffi::c_void,
4385        ldv: i64,
4386        computeType: cudaDataType,
4387        workspaceInBytesOnDevice: *mut usize,
4388        workspaceInBytesOnHost: *mut usize,
4389    ) -> cusolverStatus_t;
4390    pub fn cusolverDnXgesvdr(
4391        handle: cusolverDnHandle_t,
4392        params: cusolverDnParams_t,
4393        jobu: ::core::ffi::c_schar,
4394        jobv: ::core::ffi::c_schar,
4395        m: i64,
4396        n: i64,
4397        k: i64,
4398        p: i64,
4399        niters: i64,
4400        dataTypeA: cudaDataType,
4401        A: *mut ::core::ffi::c_void,
4402        lda: i64,
4403        dataTypeSrand: cudaDataType,
4404        Srand: *mut ::core::ffi::c_void,
4405        dataTypeUrand: cudaDataType,
4406        Urand: *mut ::core::ffi::c_void,
4407        ldUrand: i64,
4408        dataTypeVrand: cudaDataType,
4409        Vrand: *mut ::core::ffi::c_void,
4410        ldVrand: i64,
4411        computeType: cudaDataType,
4412        bufferOnDevice: *mut ::core::ffi::c_void,
4413        workspaceInBytesOnDevice: usize,
4414        bufferOnHost: *mut ::core::ffi::c_void,
4415        workspaceInBytesOnHost: usize,
4416        d_info: *mut ::core::ffi::c_int,
4417    ) -> cusolverStatus_t;
4418    pub fn cusolverDnXgesvdr_bufferSize(
4419        handle: cusolverDnHandle_t,
4420        params: cusolverDnParams_t,
4421        jobu: ::core::ffi::c_schar,
4422        jobv: ::core::ffi::c_schar,
4423        m: i64,
4424        n: i64,
4425        k: i64,
4426        p: i64,
4427        niters: i64,
4428        dataTypeA: cudaDataType,
4429        A: *const ::core::ffi::c_void,
4430        lda: i64,
4431        dataTypeSrand: cudaDataType,
4432        Srand: *const ::core::ffi::c_void,
4433        dataTypeUrand: cudaDataType,
4434        Urand: *const ::core::ffi::c_void,
4435        ldUrand: i64,
4436        dataTypeVrand: cudaDataType,
4437        Vrand: *const ::core::ffi::c_void,
4438        ldVrand: i64,
4439        computeType: cudaDataType,
4440        workspaceInBytesOnDevice: *mut usize,
4441        workspaceInBytesOnHost: *mut usize,
4442    ) -> cusolverStatus_t;
4443    pub fn cusolverDnXgetrf(
4444        handle: cusolverDnHandle_t,
4445        params: cusolverDnParams_t,
4446        m: i64,
4447        n: i64,
4448        dataTypeA: cudaDataType,
4449        A: *mut ::core::ffi::c_void,
4450        lda: i64,
4451        ipiv: *mut i64,
4452        computeType: cudaDataType,
4453        bufferOnDevice: *mut ::core::ffi::c_void,
4454        workspaceInBytesOnDevice: usize,
4455        bufferOnHost: *mut ::core::ffi::c_void,
4456        workspaceInBytesOnHost: usize,
4457        info: *mut ::core::ffi::c_int,
4458    ) -> cusolverStatus_t;
4459    pub fn cusolverDnXgetrf_bufferSize(
4460        handle: cusolverDnHandle_t,
4461        params: cusolverDnParams_t,
4462        m: i64,
4463        n: i64,
4464        dataTypeA: cudaDataType,
4465        A: *const ::core::ffi::c_void,
4466        lda: i64,
4467        computeType: cudaDataType,
4468        workspaceInBytesOnDevice: *mut usize,
4469        workspaceInBytesOnHost: *mut usize,
4470    ) -> cusolverStatus_t;
4471    pub fn cusolverDnXgetrs(
4472        handle: cusolverDnHandle_t,
4473        params: cusolverDnParams_t,
4474        trans: cublasOperation_t,
4475        n: i64,
4476        nrhs: i64,
4477        dataTypeA: cudaDataType,
4478        A: *const ::core::ffi::c_void,
4479        lda: i64,
4480        ipiv: *const i64,
4481        dataTypeB: cudaDataType,
4482        B: *mut ::core::ffi::c_void,
4483        ldb: i64,
4484        info: *mut ::core::ffi::c_int,
4485    ) -> cusolverStatus_t;
4486    #[cfg(any(feature = "cuda-12040"))]
4487    pub fn cusolverDnXlarft(
4488        handle: cusolverDnHandle_t,
4489        params: cusolverDnParams_t,
4490        direct: cusolverDirectMode_t,
4491        storev: cusolverStorevMode_t,
4492        N: i64,
4493        K: i64,
4494        dataTypeV: cudaDataType,
4495        d_V: *const ::core::ffi::c_void,
4496        ldv: i64,
4497        dataTypeTau: cudaDataType,
4498        d_tau: *const ::core::ffi::c_void,
4499        dataTypeT: cudaDataType,
4500        d_T: *mut ::core::ffi::c_void,
4501        ldt: i64,
4502        computeType: cudaDataType,
4503        bufferOnDevice: *mut ::core::ffi::c_void,
4504        workspaceInBytesOnDevice: usize,
4505        bufferOnHost: *mut ::core::ffi::c_void,
4506        workspaceInBytesOnHost: usize,
4507    ) -> cusolverStatus_t;
4508    #[cfg(any(
4509        feature = "cuda-12050",
4510        feature = "cuda-12060",
4511        feature = "cuda-12080",
4512        feature = "cuda-12090",
4513        feature = "cuda-13000",
4514        feature = "cuda-13010"
4515    ))]
4516    pub fn cusolverDnXlarft(
4517        handle: cusolverDnHandle_t,
4518        params: cusolverDnParams_t,
4519        direct: cusolverDirectMode_t,
4520        storev: cusolverStorevMode_t,
4521        n: i64,
4522        k: i64,
4523        dataTypeV: cudaDataType,
4524        V: *const ::core::ffi::c_void,
4525        ldv: i64,
4526        dataTypeTau: cudaDataType,
4527        tau: *const ::core::ffi::c_void,
4528        dataTypeT: cudaDataType,
4529        T: *mut ::core::ffi::c_void,
4530        ldt: i64,
4531        computeType: cudaDataType,
4532        bufferOnDevice: *mut ::core::ffi::c_void,
4533        workspaceInBytesOnDevice: usize,
4534        bufferOnHost: *mut ::core::ffi::c_void,
4535        workspaceInBytesOnHost: usize,
4536    ) -> cusolverStatus_t;
4537    #[cfg(any(feature = "cuda-12040"))]
4538    pub fn cusolverDnXlarft_bufferSize(
4539        handle: cusolverDnHandle_t,
4540        params: cusolverDnParams_t,
4541        direct: cusolverDirectMode_t,
4542        storev: cusolverStorevMode_t,
4543        N: i64,
4544        K: i64,
4545        dataTypeV: cudaDataType,
4546        d_V: *const ::core::ffi::c_void,
4547        ldv: i64,
4548        dataTypeTau: cudaDataType,
4549        d_tau: *const ::core::ffi::c_void,
4550        dataTypeT: cudaDataType,
4551        d_T: *mut ::core::ffi::c_void,
4552        ldt: i64,
4553        computeType: cudaDataType,
4554        workspaceInBytesOnDevice: *mut usize,
4555        workspaceInBytesOnHost: *mut usize,
4556    ) -> cusolverStatus_t;
4557    #[cfg(any(
4558        feature = "cuda-12050",
4559        feature = "cuda-12060",
4560        feature = "cuda-12080",
4561        feature = "cuda-12090",
4562        feature = "cuda-13000",
4563        feature = "cuda-13010"
4564    ))]
4565    pub fn cusolverDnXlarft_bufferSize(
4566        handle: cusolverDnHandle_t,
4567        params: cusolverDnParams_t,
4568        direct: cusolverDirectMode_t,
4569        storev: cusolverStorevMode_t,
4570        n: i64,
4571        k: i64,
4572        dataTypeV: cudaDataType,
4573        V: *const ::core::ffi::c_void,
4574        ldv: i64,
4575        dataTypeTau: cudaDataType,
4576        tau: *const ::core::ffi::c_void,
4577        dataTypeT: cudaDataType,
4578        T: *mut ::core::ffi::c_void,
4579        ldt: i64,
4580        computeType: cudaDataType,
4581        workspaceInBytesOnDevice: *mut usize,
4582        workspaceInBytesOnHost: *mut usize,
4583    ) -> cusolverStatus_t;
4584    pub fn cusolverDnXpotrf(
4585        handle: cusolverDnHandle_t,
4586        params: cusolverDnParams_t,
4587        uplo: cublasFillMode_t,
4588        n: i64,
4589        dataTypeA: cudaDataType,
4590        A: *mut ::core::ffi::c_void,
4591        lda: i64,
4592        computeType: cudaDataType,
4593        bufferOnDevice: *mut ::core::ffi::c_void,
4594        workspaceInBytesOnDevice: usize,
4595        bufferOnHost: *mut ::core::ffi::c_void,
4596        workspaceInBytesOnHost: usize,
4597        info: *mut ::core::ffi::c_int,
4598    ) -> cusolverStatus_t;
4599    pub fn cusolverDnXpotrf_bufferSize(
4600        handle: cusolverDnHandle_t,
4601        params: cusolverDnParams_t,
4602        uplo: cublasFillMode_t,
4603        n: i64,
4604        dataTypeA: cudaDataType,
4605        A: *const ::core::ffi::c_void,
4606        lda: i64,
4607        computeType: cudaDataType,
4608        workspaceInBytesOnDevice: *mut usize,
4609        workspaceInBytesOnHost: *mut usize,
4610    ) -> cusolverStatus_t;
4611    pub fn cusolverDnXpotrs(
4612        handle: cusolverDnHandle_t,
4613        params: cusolverDnParams_t,
4614        uplo: cublasFillMode_t,
4615        n: i64,
4616        nrhs: i64,
4617        dataTypeA: cudaDataType,
4618        A: *const ::core::ffi::c_void,
4619        lda: i64,
4620        dataTypeB: cudaDataType,
4621        B: *mut ::core::ffi::c_void,
4622        ldb: i64,
4623        info: *mut ::core::ffi::c_int,
4624    ) -> cusolverStatus_t;
4625    #[cfg(any(
4626        feature = "cuda-12060",
4627        feature = "cuda-12080",
4628        feature = "cuda-12090",
4629        feature = "cuda-13000",
4630        feature = "cuda-13010"
4631    ))]
4632    pub fn cusolverDnXsyevBatched(
4633        handle: cusolverDnHandle_t,
4634        params: cusolverDnParams_t,
4635        jobz: cusolverEigMode_t,
4636        uplo: cublasFillMode_t,
4637        n: i64,
4638        dataTypeA: cudaDataType,
4639        A: *mut ::core::ffi::c_void,
4640        lda: i64,
4641        dataTypeW: cudaDataType,
4642        W: *mut ::core::ffi::c_void,
4643        computeType: cudaDataType,
4644        bufferOnDevice: *mut ::core::ffi::c_void,
4645        workspaceInBytesOnDevice: usize,
4646        bufferOnHost: *mut ::core::ffi::c_void,
4647        workspaceInBytesOnHost: usize,
4648        info: *mut ::core::ffi::c_int,
4649        batchSize: i64,
4650    ) -> cusolverStatus_t;
4651    #[cfg(any(
4652        feature = "cuda-12060",
4653        feature = "cuda-12080",
4654        feature = "cuda-12090",
4655        feature = "cuda-13000",
4656        feature = "cuda-13010"
4657    ))]
4658    pub fn cusolverDnXsyevBatched_bufferSize(
4659        handle: cusolverDnHandle_t,
4660        params: cusolverDnParams_t,
4661        jobz: cusolverEigMode_t,
4662        uplo: cublasFillMode_t,
4663        n: i64,
4664        dataTypeA: cudaDataType,
4665        A: *const ::core::ffi::c_void,
4666        lda: i64,
4667        dataTypeW: cudaDataType,
4668        W: *const ::core::ffi::c_void,
4669        computeType: cudaDataType,
4670        workspaceInBytesOnDevice: *mut usize,
4671        workspaceInBytesOnHost: *mut usize,
4672        batchSize: i64,
4673    ) -> cusolverStatus_t;
4674    pub fn cusolverDnXsyevd(
4675        handle: cusolverDnHandle_t,
4676        params: cusolverDnParams_t,
4677        jobz: cusolverEigMode_t,
4678        uplo: cublasFillMode_t,
4679        n: i64,
4680        dataTypeA: cudaDataType,
4681        A: *mut ::core::ffi::c_void,
4682        lda: i64,
4683        dataTypeW: cudaDataType,
4684        W: *mut ::core::ffi::c_void,
4685        computeType: cudaDataType,
4686        bufferOnDevice: *mut ::core::ffi::c_void,
4687        workspaceInBytesOnDevice: usize,
4688        bufferOnHost: *mut ::core::ffi::c_void,
4689        workspaceInBytesOnHost: usize,
4690        info: *mut ::core::ffi::c_int,
4691    ) -> cusolverStatus_t;
4692    pub fn cusolverDnXsyevd_bufferSize(
4693        handle: cusolverDnHandle_t,
4694        params: cusolverDnParams_t,
4695        jobz: cusolverEigMode_t,
4696        uplo: cublasFillMode_t,
4697        n: i64,
4698        dataTypeA: cudaDataType,
4699        A: *const ::core::ffi::c_void,
4700        lda: i64,
4701        dataTypeW: cudaDataType,
4702        W: *const ::core::ffi::c_void,
4703        computeType: cudaDataType,
4704        workspaceInBytesOnDevice: *mut usize,
4705        workspaceInBytesOnHost: *mut usize,
4706    ) -> cusolverStatus_t;
4707    pub fn cusolverDnXsyevdx(
4708        handle: cusolverDnHandle_t,
4709        params: cusolverDnParams_t,
4710        jobz: cusolverEigMode_t,
4711        range: cusolverEigRange_t,
4712        uplo: cublasFillMode_t,
4713        n: i64,
4714        dataTypeA: cudaDataType,
4715        A: *mut ::core::ffi::c_void,
4716        lda: i64,
4717        vl: *mut ::core::ffi::c_void,
4718        vu: *mut ::core::ffi::c_void,
4719        il: i64,
4720        iu: i64,
4721        meig64: *mut i64,
4722        dataTypeW: cudaDataType,
4723        W: *mut ::core::ffi::c_void,
4724        computeType: cudaDataType,
4725        bufferOnDevice: *mut ::core::ffi::c_void,
4726        workspaceInBytesOnDevice: usize,
4727        bufferOnHost: *mut ::core::ffi::c_void,
4728        workspaceInBytesOnHost: usize,
4729        info: *mut ::core::ffi::c_int,
4730    ) -> cusolverStatus_t;
4731    pub fn cusolverDnXsyevdx_bufferSize(
4732        handle: cusolverDnHandle_t,
4733        params: cusolverDnParams_t,
4734        jobz: cusolverEigMode_t,
4735        range: cusolverEigRange_t,
4736        uplo: cublasFillMode_t,
4737        n: i64,
4738        dataTypeA: cudaDataType,
4739        A: *const ::core::ffi::c_void,
4740        lda: i64,
4741        vl: *mut ::core::ffi::c_void,
4742        vu: *mut ::core::ffi::c_void,
4743        il: i64,
4744        iu: i64,
4745        h_meig: *mut i64,
4746        dataTypeW: cudaDataType,
4747        W: *const ::core::ffi::c_void,
4748        computeType: cudaDataType,
4749        workspaceInBytesOnDevice: *mut usize,
4750        workspaceInBytesOnHost: *mut usize,
4751    ) -> cusolverStatus_t;
4752    pub fn cusolverDnXsyevjGetResidual(
4753        handle: cusolverDnHandle_t,
4754        info: syevjInfo_t,
4755        residual: *mut f64,
4756    ) -> cusolverStatus_t;
4757    pub fn cusolverDnXsyevjGetSweeps(
4758        handle: cusolverDnHandle_t,
4759        info: syevjInfo_t,
4760        executed_sweeps: *mut ::core::ffi::c_int,
4761    ) -> cusolverStatus_t;
4762    pub fn cusolverDnXsyevjSetMaxSweeps(
4763        info: syevjInfo_t,
4764        max_sweeps: ::core::ffi::c_int,
4765    ) -> cusolverStatus_t;
4766    pub fn cusolverDnXsyevjSetSortEig(
4767        info: syevjInfo_t,
4768        sort_eig: ::core::ffi::c_int,
4769    ) -> cusolverStatus_t;
4770    pub fn cusolverDnXsyevjSetTolerance(info: syevjInfo_t, tolerance: f64) -> cusolverStatus_t;
4771    pub fn cusolverDnXsytrs(
4772        handle: cusolverDnHandle_t,
4773        uplo: cublasFillMode_t,
4774        n: i64,
4775        nrhs: i64,
4776        dataTypeA: cudaDataType,
4777        A: *const ::core::ffi::c_void,
4778        lda: i64,
4779        ipiv: *const i64,
4780        dataTypeB: cudaDataType,
4781        B: *mut ::core::ffi::c_void,
4782        ldb: i64,
4783        bufferOnDevice: *mut ::core::ffi::c_void,
4784        workspaceInBytesOnDevice: usize,
4785        bufferOnHost: *mut ::core::ffi::c_void,
4786        workspaceInBytesOnHost: usize,
4787        info: *mut ::core::ffi::c_int,
4788    ) -> cusolverStatus_t;
4789    pub fn cusolverDnXsytrs_bufferSize(
4790        handle: cusolverDnHandle_t,
4791        uplo: cublasFillMode_t,
4792        n: i64,
4793        nrhs: i64,
4794        dataTypeA: cudaDataType,
4795        A: *const ::core::ffi::c_void,
4796        lda: i64,
4797        ipiv: *const i64,
4798        dataTypeB: cudaDataType,
4799        B: *mut ::core::ffi::c_void,
4800        ldb: i64,
4801        workspaceInBytesOnDevice: *mut usize,
4802        workspaceInBytesOnHost: *mut usize,
4803    ) -> cusolverStatus_t;
4804    pub fn cusolverDnXtrtri(
4805        handle: cusolverDnHandle_t,
4806        uplo: cublasFillMode_t,
4807        diag: cublasDiagType_t,
4808        n: i64,
4809        dataTypeA: cudaDataType,
4810        A: *mut ::core::ffi::c_void,
4811        lda: i64,
4812        bufferOnDevice: *mut ::core::ffi::c_void,
4813        workspaceInBytesOnDevice: usize,
4814        bufferOnHost: *mut ::core::ffi::c_void,
4815        workspaceInBytesOnHost: usize,
4816        devInfo: *mut ::core::ffi::c_int,
4817    ) -> cusolverStatus_t;
4818    pub fn cusolverDnXtrtri_bufferSize(
4819        handle: cusolverDnHandle_t,
4820        uplo: cublasFillMode_t,
4821        diag: cublasDiagType_t,
4822        n: i64,
4823        dataTypeA: cudaDataType,
4824        A: *mut ::core::ffi::c_void,
4825        lda: i64,
4826        workspaceInBytesOnDevice: *mut usize,
4827        workspaceInBytesOnHost: *mut usize,
4828    ) -> cusolverStatus_t;
4829    pub fn cusolverDnZCgels(
4830        handle: cusolverDnHandle_t,
4831        m: cusolver_int_t,
4832        n: cusolver_int_t,
4833        nrhs: cusolver_int_t,
4834        dA: *mut cuDoubleComplex,
4835        ldda: cusolver_int_t,
4836        dB: *mut cuDoubleComplex,
4837        lddb: cusolver_int_t,
4838        dX: *mut cuDoubleComplex,
4839        lddx: cusolver_int_t,
4840        dWorkspace: *mut ::core::ffi::c_void,
4841        lwork_bytes: usize,
4842        iter: *mut cusolver_int_t,
4843        d_info: *mut cusolver_int_t,
4844    ) -> cusolverStatus_t;
4845    pub fn cusolverDnZCgels_bufferSize(
4846        handle: cusolverDnHandle_t,
4847        m: cusolver_int_t,
4848        n: cusolver_int_t,
4849        nrhs: cusolver_int_t,
4850        dA: *mut cuDoubleComplex,
4851        ldda: cusolver_int_t,
4852        dB: *mut cuDoubleComplex,
4853        lddb: cusolver_int_t,
4854        dX: *mut cuDoubleComplex,
4855        lddx: cusolver_int_t,
4856        dWorkspace: *mut ::core::ffi::c_void,
4857        lwork_bytes: *mut usize,
4858    ) -> cusolverStatus_t;
4859    pub fn cusolverDnZCgesv(
4860        handle: cusolverDnHandle_t,
4861        n: cusolver_int_t,
4862        nrhs: cusolver_int_t,
4863        dA: *mut cuDoubleComplex,
4864        ldda: cusolver_int_t,
4865        dipiv: *mut cusolver_int_t,
4866        dB: *mut cuDoubleComplex,
4867        lddb: cusolver_int_t,
4868        dX: *mut cuDoubleComplex,
4869        lddx: cusolver_int_t,
4870        dWorkspace: *mut ::core::ffi::c_void,
4871        lwork_bytes: usize,
4872        iter: *mut cusolver_int_t,
4873        d_info: *mut cusolver_int_t,
4874    ) -> cusolverStatus_t;
4875    pub fn cusolverDnZCgesv_bufferSize(
4876        handle: cusolverDnHandle_t,
4877        n: cusolver_int_t,
4878        nrhs: cusolver_int_t,
4879        dA: *mut cuDoubleComplex,
4880        ldda: cusolver_int_t,
4881        dipiv: *mut cusolver_int_t,
4882        dB: *mut cuDoubleComplex,
4883        lddb: cusolver_int_t,
4884        dX: *mut cuDoubleComplex,
4885        lddx: cusolver_int_t,
4886        dWorkspace: *mut ::core::ffi::c_void,
4887        lwork_bytes: *mut usize,
4888    ) -> cusolverStatus_t;
4889    pub fn cusolverDnZEgels(
4890        handle: cusolverDnHandle_t,
4891        m: cusolver_int_t,
4892        n: cusolver_int_t,
4893        nrhs: cusolver_int_t,
4894        dA: *mut cuDoubleComplex,
4895        ldda: cusolver_int_t,
4896        dB: *mut cuDoubleComplex,
4897        lddb: cusolver_int_t,
4898        dX: *mut cuDoubleComplex,
4899        lddx: cusolver_int_t,
4900        dWorkspace: *mut ::core::ffi::c_void,
4901        lwork_bytes: usize,
4902        iter: *mut cusolver_int_t,
4903        d_info: *mut cusolver_int_t,
4904    ) -> cusolverStatus_t;
4905    pub fn cusolverDnZEgels_bufferSize(
4906        handle: cusolverDnHandle_t,
4907        m: cusolver_int_t,
4908        n: cusolver_int_t,
4909        nrhs: cusolver_int_t,
4910        dA: *mut cuDoubleComplex,
4911        ldda: cusolver_int_t,
4912        dB: *mut cuDoubleComplex,
4913        lddb: cusolver_int_t,
4914        dX: *mut cuDoubleComplex,
4915        lddx: cusolver_int_t,
4916        dWorkspace: *mut ::core::ffi::c_void,
4917        lwork_bytes: *mut usize,
4918    ) -> cusolverStatus_t;
4919    pub fn cusolverDnZEgesv(
4920        handle: cusolverDnHandle_t,
4921        n: cusolver_int_t,
4922        nrhs: cusolver_int_t,
4923        dA: *mut cuDoubleComplex,
4924        ldda: cusolver_int_t,
4925        dipiv: *mut cusolver_int_t,
4926        dB: *mut cuDoubleComplex,
4927        lddb: cusolver_int_t,
4928        dX: *mut cuDoubleComplex,
4929        lddx: cusolver_int_t,
4930        dWorkspace: *mut ::core::ffi::c_void,
4931        lwork_bytes: usize,
4932        iter: *mut cusolver_int_t,
4933        d_info: *mut cusolver_int_t,
4934    ) -> cusolverStatus_t;
4935    pub fn cusolverDnZEgesv_bufferSize(
4936        handle: cusolverDnHandle_t,
4937        n: cusolver_int_t,
4938        nrhs: cusolver_int_t,
4939        dA: *mut cuDoubleComplex,
4940        ldda: cusolver_int_t,
4941        dipiv: *mut cusolver_int_t,
4942        dB: *mut cuDoubleComplex,
4943        lddb: cusolver_int_t,
4944        dX: *mut cuDoubleComplex,
4945        lddx: cusolver_int_t,
4946        dWorkspace: *mut ::core::ffi::c_void,
4947        lwork_bytes: *mut usize,
4948    ) -> cusolverStatus_t;
4949    pub fn cusolverDnZKgels(
4950        handle: cusolverDnHandle_t,
4951        m: cusolver_int_t,
4952        n: cusolver_int_t,
4953        nrhs: cusolver_int_t,
4954        dA: *mut cuDoubleComplex,
4955        ldda: cusolver_int_t,
4956        dB: *mut cuDoubleComplex,
4957        lddb: cusolver_int_t,
4958        dX: *mut cuDoubleComplex,
4959        lddx: cusolver_int_t,
4960        dWorkspace: *mut ::core::ffi::c_void,
4961        lwork_bytes: usize,
4962        iter: *mut cusolver_int_t,
4963        d_info: *mut cusolver_int_t,
4964    ) -> cusolverStatus_t;
4965    pub fn cusolverDnZKgels_bufferSize(
4966        handle: cusolverDnHandle_t,
4967        m: cusolver_int_t,
4968        n: cusolver_int_t,
4969        nrhs: cusolver_int_t,
4970        dA: *mut cuDoubleComplex,
4971        ldda: cusolver_int_t,
4972        dB: *mut cuDoubleComplex,
4973        lddb: cusolver_int_t,
4974        dX: *mut cuDoubleComplex,
4975        lddx: cusolver_int_t,
4976        dWorkspace: *mut ::core::ffi::c_void,
4977        lwork_bytes: *mut usize,
4978    ) -> cusolverStatus_t;
4979    pub fn cusolverDnZKgesv(
4980        handle: cusolverDnHandle_t,
4981        n: cusolver_int_t,
4982        nrhs: cusolver_int_t,
4983        dA: *mut cuDoubleComplex,
4984        ldda: cusolver_int_t,
4985        dipiv: *mut cusolver_int_t,
4986        dB: *mut cuDoubleComplex,
4987        lddb: cusolver_int_t,
4988        dX: *mut cuDoubleComplex,
4989        lddx: cusolver_int_t,
4990        dWorkspace: *mut ::core::ffi::c_void,
4991        lwork_bytes: usize,
4992        iter: *mut cusolver_int_t,
4993        d_info: *mut cusolver_int_t,
4994    ) -> cusolverStatus_t;
4995    pub fn cusolverDnZKgesv_bufferSize(
4996        handle: cusolverDnHandle_t,
4997        n: cusolver_int_t,
4998        nrhs: cusolver_int_t,
4999        dA: *mut cuDoubleComplex,
5000        ldda: cusolver_int_t,
5001        dipiv: *mut cusolver_int_t,
5002        dB: *mut cuDoubleComplex,
5003        lddb: cusolver_int_t,
5004        dX: *mut cuDoubleComplex,
5005        lddx: cusolver_int_t,
5006        dWorkspace: *mut ::core::ffi::c_void,
5007        lwork_bytes: *mut usize,
5008    ) -> cusolverStatus_t;
5009    pub fn cusolverDnZYgels(
5010        handle: cusolverDnHandle_t,
5011        m: cusolver_int_t,
5012        n: cusolver_int_t,
5013        nrhs: cusolver_int_t,
5014        dA: *mut cuDoubleComplex,
5015        ldda: cusolver_int_t,
5016        dB: *mut cuDoubleComplex,
5017        lddb: cusolver_int_t,
5018        dX: *mut cuDoubleComplex,
5019        lddx: cusolver_int_t,
5020        dWorkspace: *mut ::core::ffi::c_void,
5021        lwork_bytes: usize,
5022        iter: *mut cusolver_int_t,
5023        d_info: *mut cusolver_int_t,
5024    ) -> cusolverStatus_t;
5025    pub fn cusolverDnZYgels_bufferSize(
5026        handle: cusolverDnHandle_t,
5027        m: cusolver_int_t,
5028        n: cusolver_int_t,
5029        nrhs: cusolver_int_t,
5030        dA: *mut cuDoubleComplex,
5031        ldda: cusolver_int_t,
5032        dB: *mut cuDoubleComplex,
5033        lddb: cusolver_int_t,
5034        dX: *mut cuDoubleComplex,
5035        lddx: cusolver_int_t,
5036        dWorkspace: *mut ::core::ffi::c_void,
5037        lwork_bytes: *mut usize,
5038    ) -> cusolverStatus_t;
5039    pub fn cusolverDnZYgesv(
5040        handle: cusolverDnHandle_t,
5041        n: cusolver_int_t,
5042        nrhs: cusolver_int_t,
5043        dA: *mut cuDoubleComplex,
5044        ldda: cusolver_int_t,
5045        dipiv: *mut cusolver_int_t,
5046        dB: *mut cuDoubleComplex,
5047        lddb: cusolver_int_t,
5048        dX: *mut cuDoubleComplex,
5049        lddx: cusolver_int_t,
5050        dWorkspace: *mut ::core::ffi::c_void,
5051        lwork_bytes: usize,
5052        iter: *mut cusolver_int_t,
5053        d_info: *mut cusolver_int_t,
5054    ) -> cusolverStatus_t;
5055    pub fn cusolverDnZYgesv_bufferSize(
5056        handle: cusolverDnHandle_t,
5057        n: cusolver_int_t,
5058        nrhs: cusolver_int_t,
5059        dA: *mut cuDoubleComplex,
5060        ldda: cusolver_int_t,
5061        dipiv: *mut cusolver_int_t,
5062        dB: *mut cuDoubleComplex,
5063        lddb: cusolver_int_t,
5064        dX: *mut cuDoubleComplex,
5065        lddx: cusolver_int_t,
5066        dWorkspace: *mut ::core::ffi::c_void,
5067        lwork_bytes: *mut usize,
5068    ) -> cusolverStatus_t;
5069    pub fn cusolverDnZZgels(
5070        handle: cusolverDnHandle_t,
5071        m: cusolver_int_t,
5072        n: cusolver_int_t,
5073        nrhs: cusolver_int_t,
5074        dA: *mut cuDoubleComplex,
5075        ldda: cusolver_int_t,
5076        dB: *mut cuDoubleComplex,
5077        lddb: cusolver_int_t,
5078        dX: *mut cuDoubleComplex,
5079        lddx: cusolver_int_t,
5080        dWorkspace: *mut ::core::ffi::c_void,
5081        lwork_bytes: usize,
5082        iter: *mut cusolver_int_t,
5083        d_info: *mut cusolver_int_t,
5084    ) -> cusolverStatus_t;
5085    pub fn cusolverDnZZgels_bufferSize(
5086        handle: cusolverDnHandle_t,
5087        m: cusolver_int_t,
5088        n: cusolver_int_t,
5089        nrhs: cusolver_int_t,
5090        dA: *mut cuDoubleComplex,
5091        ldda: cusolver_int_t,
5092        dB: *mut cuDoubleComplex,
5093        lddb: cusolver_int_t,
5094        dX: *mut cuDoubleComplex,
5095        lddx: cusolver_int_t,
5096        dWorkspace: *mut ::core::ffi::c_void,
5097        lwork_bytes: *mut usize,
5098    ) -> cusolverStatus_t;
5099    pub fn cusolverDnZZgesv(
5100        handle: cusolverDnHandle_t,
5101        n: cusolver_int_t,
5102        nrhs: cusolver_int_t,
5103        dA: *mut cuDoubleComplex,
5104        ldda: cusolver_int_t,
5105        dipiv: *mut cusolver_int_t,
5106        dB: *mut cuDoubleComplex,
5107        lddb: cusolver_int_t,
5108        dX: *mut cuDoubleComplex,
5109        lddx: cusolver_int_t,
5110        dWorkspace: *mut ::core::ffi::c_void,
5111        lwork_bytes: usize,
5112        iter: *mut cusolver_int_t,
5113        d_info: *mut cusolver_int_t,
5114    ) -> cusolverStatus_t;
5115    pub fn cusolverDnZZgesv_bufferSize(
5116        handle: cusolverDnHandle_t,
5117        n: cusolver_int_t,
5118        nrhs: cusolver_int_t,
5119        dA: *mut cuDoubleComplex,
5120        ldda: cusolver_int_t,
5121        dipiv: *mut cusolver_int_t,
5122        dB: *mut cuDoubleComplex,
5123        lddb: cusolver_int_t,
5124        dX: *mut cuDoubleComplex,
5125        lddx: cusolver_int_t,
5126        dWorkspace: *mut ::core::ffi::c_void,
5127        lwork_bytes: *mut usize,
5128    ) -> cusolverStatus_t;
5129    pub fn cusolverDnZgebrd(
5130        handle: cusolverDnHandle_t,
5131        m: ::core::ffi::c_int,
5132        n: ::core::ffi::c_int,
5133        A: *mut cuDoubleComplex,
5134        lda: ::core::ffi::c_int,
5135        D: *mut f64,
5136        E: *mut f64,
5137        TAUQ: *mut cuDoubleComplex,
5138        TAUP: *mut cuDoubleComplex,
5139        Work: *mut cuDoubleComplex,
5140        Lwork: ::core::ffi::c_int,
5141        devInfo: *mut ::core::ffi::c_int,
5142    ) -> cusolverStatus_t;
5143    pub fn cusolverDnZgebrd_bufferSize(
5144        handle: cusolverDnHandle_t,
5145        m: ::core::ffi::c_int,
5146        n: ::core::ffi::c_int,
5147        Lwork: *mut ::core::ffi::c_int,
5148    ) -> cusolverStatus_t;
5149    pub fn cusolverDnZgeqrf(
5150        handle: cusolverDnHandle_t,
5151        m: ::core::ffi::c_int,
5152        n: ::core::ffi::c_int,
5153        A: *mut cuDoubleComplex,
5154        lda: ::core::ffi::c_int,
5155        TAU: *mut cuDoubleComplex,
5156        Workspace: *mut cuDoubleComplex,
5157        Lwork: ::core::ffi::c_int,
5158        devInfo: *mut ::core::ffi::c_int,
5159    ) -> cusolverStatus_t;
5160    pub fn cusolverDnZgeqrf_bufferSize(
5161        handle: cusolverDnHandle_t,
5162        m: ::core::ffi::c_int,
5163        n: ::core::ffi::c_int,
5164        A: *mut cuDoubleComplex,
5165        lda: ::core::ffi::c_int,
5166        lwork: *mut ::core::ffi::c_int,
5167    ) -> cusolverStatus_t;
5168    pub fn cusolverDnZgesvd(
5169        handle: cusolverDnHandle_t,
5170        jobu: ::core::ffi::c_schar,
5171        jobvt: ::core::ffi::c_schar,
5172        m: ::core::ffi::c_int,
5173        n: ::core::ffi::c_int,
5174        A: *mut cuDoubleComplex,
5175        lda: ::core::ffi::c_int,
5176        S: *mut f64,
5177        U: *mut cuDoubleComplex,
5178        ldu: ::core::ffi::c_int,
5179        VT: *mut cuDoubleComplex,
5180        ldvt: ::core::ffi::c_int,
5181        work: *mut cuDoubleComplex,
5182        lwork: ::core::ffi::c_int,
5183        rwork: *mut f64,
5184        info: *mut ::core::ffi::c_int,
5185    ) -> cusolverStatus_t;
5186    pub fn cusolverDnZgesvd_bufferSize(
5187        handle: cusolverDnHandle_t,
5188        m: ::core::ffi::c_int,
5189        n: ::core::ffi::c_int,
5190        lwork: *mut ::core::ffi::c_int,
5191    ) -> cusolverStatus_t;
5192    pub fn cusolverDnZgesvdaStridedBatched(
5193        handle: cusolverDnHandle_t,
5194        jobz: cusolverEigMode_t,
5195        rank: ::core::ffi::c_int,
5196        m: ::core::ffi::c_int,
5197        n: ::core::ffi::c_int,
5198        d_A: *const cuDoubleComplex,
5199        lda: ::core::ffi::c_int,
5200        strideA: ::core::ffi::c_longlong,
5201        d_S: *mut f64,
5202        strideS: ::core::ffi::c_longlong,
5203        d_U: *mut cuDoubleComplex,
5204        ldu: ::core::ffi::c_int,
5205        strideU: ::core::ffi::c_longlong,
5206        d_V: *mut cuDoubleComplex,
5207        ldv: ::core::ffi::c_int,
5208        strideV: ::core::ffi::c_longlong,
5209        d_work: *mut cuDoubleComplex,
5210        lwork: ::core::ffi::c_int,
5211        d_info: *mut ::core::ffi::c_int,
5212        h_R_nrmF: *mut f64,
5213        batchSize: ::core::ffi::c_int,
5214    ) -> cusolverStatus_t;
5215    pub fn cusolverDnZgesvdaStridedBatched_bufferSize(
5216        handle: cusolverDnHandle_t,
5217        jobz: cusolverEigMode_t,
5218        rank: ::core::ffi::c_int,
5219        m: ::core::ffi::c_int,
5220        n: ::core::ffi::c_int,
5221        d_A: *const cuDoubleComplex,
5222        lda: ::core::ffi::c_int,
5223        strideA: ::core::ffi::c_longlong,
5224        d_S: *const f64,
5225        strideS: ::core::ffi::c_longlong,
5226        d_U: *const cuDoubleComplex,
5227        ldu: ::core::ffi::c_int,
5228        strideU: ::core::ffi::c_longlong,
5229        d_V: *const cuDoubleComplex,
5230        ldv: ::core::ffi::c_int,
5231        strideV: ::core::ffi::c_longlong,
5232        lwork: *mut ::core::ffi::c_int,
5233        batchSize: ::core::ffi::c_int,
5234    ) -> cusolverStatus_t;
5235    pub fn cusolverDnZgesvdj(
5236        handle: cusolverDnHandle_t,
5237        jobz: cusolverEigMode_t,
5238        econ: ::core::ffi::c_int,
5239        m: ::core::ffi::c_int,
5240        n: ::core::ffi::c_int,
5241        A: *mut cuDoubleComplex,
5242        lda: ::core::ffi::c_int,
5243        S: *mut f64,
5244        U: *mut cuDoubleComplex,
5245        ldu: ::core::ffi::c_int,
5246        V: *mut cuDoubleComplex,
5247        ldv: ::core::ffi::c_int,
5248        work: *mut cuDoubleComplex,
5249        lwork: ::core::ffi::c_int,
5250        info: *mut ::core::ffi::c_int,
5251        params: gesvdjInfo_t,
5252    ) -> cusolverStatus_t;
5253    pub fn cusolverDnZgesvdjBatched(
5254        handle: cusolverDnHandle_t,
5255        jobz: cusolverEigMode_t,
5256        m: ::core::ffi::c_int,
5257        n: ::core::ffi::c_int,
5258        A: *mut cuDoubleComplex,
5259        lda: ::core::ffi::c_int,
5260        S: *mut f64,
5261        U: *mut cuDoubleComplex,
5262        ldu: ::core::ffi::c_int,
5263        V: *mut cuDoubleComplex,
5264        ldv: ::core::ffi::c_int,
5265        work: *mut cuDoubleComplex,
5266        lwork: ::core::ffi::c_int,
5267        info: *mut ::core::ffi::c_int,
5268        params: gesvdjInfo_t,
5269        batchSize: ::core::ffi::c_int,
5270    ) -> cusolverStatus_t;
5271    pub fn cusolverDnZgesvdjBatched_bufferSize(
5272        handle: cusolverDnHandle_t,
5273        jobz: cusolverEigMode_t,
5274        m: ::core::ffi::c_int,
5275        n: ::core::ffi::c_int,
5276        A: *const cuDoubleComplex,
5277        lda: ::core::ffi::c_int,
5278        S: *const f64,
5279        U: *const cuDoubleComplex,
5280        ldu: ::core::ffi::c_int,
5281        V: *const cuDoubleComplex,
5282        ldv: ::core::ffi::c_int,
5283        lwork: *mut ::core::ffi::c_int,
5284        params: gesvdjInfo_t,
5285        batchSize: ::core::ffi::c_int,
5286    ) -> cusolverStatus_t;
5287    pub fn cusolverDnZgesvdj_bufferSize(
5288        handle: cusolverDnHandle_t,
5289        jobz: cusolverEigMode_t,
5290        econ: ::core::ffi::c_int,
5291        m: ::core::ffi::c_int,
5292        n: ::core::ffi::c_int,
5293        A: *const cuDoubleComplex,
5294        lda: ::core::ffi::c_int,
5295        S: *const f64,
5296        U: *const cuDoubleComplex,
5297        ldu: ::core::ffi::c_int,
5298        V: *const cuDoubleComplex,
5299        ldv: ::core::ffi::c_int,
5300        lwork: *mut ::core::ffi::c_int,
5301        params: gesvdjInfo_t,
5302    ) -> cusolverStatus_t;
5303    pub fn cusolverDnZgetrf(
5304        handle: cusolverDnHandle_t,
5305        m: ::core::ffi::c_int,
5306        n: ::core::ffi::c_int,
5307        A: *mut cuDoubleComplex,
5308        lda: ::core::ffi::c_int,
5309        Workspace: *mut cuDoubleComplex,
5310        devIpiv: *mut ::core::ffi::c_int,
5311        devInfo: *mut ::core::ffi::c_int,
5312    ) -> cusolverStatus_t;
5313    pub fn cusolverDnZgetrf_bufferSize(
5314        handle: cusolverDnHandle_t,
5315        m: ::core::ffi::c_int,
5316        n: ::core::ffi::c_int,
5317        A: *mut cuDoubleComplex,
5318        lda: ::core::ffi::c_int,
5319        Lwork: *mut ::core::ffi::c_int,
5320    ) -> cusolverStatus_t;
5321    pub fn cusolverDnZgetrs(
5322        handle: cusolverDnHandle_t,
5323        trans: cublasOperation_t,
5324        n: ::core::ffi::c_int,
5325        nrhs: ::core::ffi::c_int,
5326        A: *const cuDoubleComplex,
5327        lda: ::core::ffi::c_int,
5328        devIpiv: *const ::core::ffi::c_int,
5329        B: *mut cuDoubleComplex,
5330        ldb: ::core::ffi::c_int,
5331        devInfo: *mut ::core::ffi::c_int,
5332    ) -> cusolverStatus_t;
5333    pub fn cusolverDnZheevd(
5334        handle: cusolverDnHandle_t,
5335        jobz: cusolverEigMode_t,
5336        uplo: cublasFillMode_t,
5337        n: ::core::ffi::c_int,
5338        A: *mut cuDoubleComplex,
5339        lda: ::core::ffi::c_int,
5340        W: *mut f64,
5341        work: *mut cuDoubleComplex,
5342        lwork: ::core::ffi::c_int,
5343        info: *mut ::core::ffi::c_int,
5344    ) -> cusolverStatus_t;
5345    pub fn cusolverDnZheevd_bufferSize(
5346        handle: cusolverDnHandle_t,
5347        jobz: cusolverEigMode_t,
5348        uplo: cublasFillMode_t,
5349        n: ::core::ffi::c_int,
5350        A: *const cuDoubleComplex,
5351        lda: ::core::ffi::c_int,
5352        W: *const f64,
5353        lwork: *mut ::core::ffi::c_int,
5354    ) -> cusolverStatus_t;
5355    pub fn cusolverDnZheevdx(
5356        handle: cusolverDnHandle_t,
5357        jobz: cusolverEigMode_t,
5358        range: cusolverEigRange_t,
5359        uplo: cublasFillMode_t,
5360        n: ::core::ffi::c_int,
5361        A: *mut cuDoubleComplex,
5362        lda: ::core::ffi::c_int,
5363        vl: f64,
5364        vu: f64,
5365        il: ::core::ffi::c_int,
5366        iu: ::core::ffi::c_int,
5367        meig: *mut ::core::ffi::c_int,
5368        W: *mut f64,
5369        work: *mut cuDoubleComplex,
5370        lwork: ::core::ffi::c_int,
5371        info: *mut ::core::ffi::c_int,
5372    ) -> cusolverStatus_t;
5373    pub fn cusolverDnZheevdx_bufferSize(
5374        handle: cusolverDnHandle_t,
5375        jobz: cusolverEigMode_t,
5376        range: cusolverEigRange_t,
5377        uplo: cublasFillMode_t,
5378        n: ::core::ffi::c_int,
5379        A: *const cuDoubleComplex,
5380        lda: ::core::ffi::c_int,
5381        vl: f64,
5382        vu: f64,
5383        il: ::core::ffi::c_int,
5384        iu: ::core::ffi::c_int,
5385        meig: *mut ::core::ffi::c_int,
5386        W: *const f64,
5387        lwork: *mut ::core::ffi::c_int,
5388    ) -> cusolverStatus_t;
5389    pub fn cusolverDnZheevj(
5390        handle: cusolverDnHandle_t,
5391        jobz: cusolverEigMode_t,
5392        uplo: cublasFillMode_t,
5393        n: ::core::ffi::c_int,
5394        A: *mut cuDoubleComplex,
5395        lda: ::core::ffi::c_int,
5396        W: *mut f64,
5397        work: *mut cuDoubleComplex,
5398        lwork: ::core::ffi::c_int,
5399        info: *mut ::core::ffi::c_int,
5400        params: syevjInfo_t,
5401    ) -> cusolverStatus_t;
5402    pub fn cusolverDnZheevjBatched(
5403        handle: cusolverDnHandle_t,
5404        jobz: cusolverEigMode_t,
5405        uplo: cublasFillMode_t,
5406        n: ::core::ffi::c_int,
5407        A: *mut cuDoubleComplex,
5408        lda: ::core::ffi::c_int,
5409        W: *mut f64,
5410        work: *mut cuDoubleComplex,
5411        lwork: ::core::ffi::c_int,
5412        info: *mut ::core::ffi::c_int,
5413        params: syevjInfo_t,
5414        batchSize: ::core::ffi::c_int,
5415    ) -> cusolverStatus_t;
5416    pub fn cusolverDnZheevjBatched_bufferSize(
5417        handle: cusolverDnHandle_t,
5418        jobz: cusolverEigMode_t,
5419        uplo: cublasFillMode_t,
5420        n: ::core::ffi::c_int,
5421        A: *const cuDoubleComplex,
5422        lda: ::core::ffi::c_int,
5423        W: *const f64,
5424        lwork: *mut ::core::ffi::c_int,
5425        params: syevjInfo_t,
5426        batchSize: ::core::ffi::c_int,
5427    ) -> cusolverStatus_t;
5428    pub fn cusolverDnZheevj_bufferSize(
5429        handle: cusolverDnHandle_t,
5430        jobz: cusolverEigMode_t,
5431        uplo: cublasFillMode_t,
5432        n: ::core::ffi::c_int,
5433        A: *const cuDoubleComplex,
5434        lda: ::core::ffi::c_int,
5435        W: *const f64,
5436        lwork: *mut ::core::ffi::c_int,
5437        params: syevjInfo_t,
5438    ) -> cusolverStatus_t;
5439    pub fn cusolverDnZhegvd(
5440        handle: cusolverDnHandle_t,
5441        itype: cusolverEigType_t,
5442        jobz: cusolverEigMode_t,
5443        uplo: cublasFillMode_t,
5444        n: ::core::ffi::c_int,
5445        A: *mut cuDoubleComplex,
5446        lda: ::core::ffi::c_int,
5447        B: *mut cuDoubleComplex,
5448        ldb: ::core::ffi::c_int,
5449        W: *mut f64,
5450        work: *mut cuDoubleComplex,
5451        lwork: ::core::ffi::c_int,
5452        info: *mut ::core::ffi::c_int,
5453    ) -> cusolverStatus_t;
5454    pub fn cusolverDnZhegvd_bufferSize(
5455        handle: cusolverDnHandle_t,
5456        itype: cusolverEigType_t,
5457        jobz: cusolverEigMode_t,
5458        uplo: cublasFillMode_t,
5459        n: ::core::ffi::c_int,
5460        A: *const cuDoubleComplex,
5461        lda: ::core::ffi::c_int,
5462        B: *const cuDoubleComplex,
5463        ldb: ::core::ffi::c_int,
5464        W: *const f64,
5465        lwork: *mut ::core::ffi::c_int,
5466    ) -> cusolverStatus_t;
5467    pub fn cusolverDnZhegvdx(
5468        handle: cusolverDnHandle_t,
5469        itype: cusolverEigType_t,
5470        jobz: cusolverEigMode_t,
5471        range: cusolverEigRange_t,
5472        uplo: cublasFillMode_t,
5473        n: ::core::ffi::c_int,
5474        A: *mut cuDoubleComplex,
5475        lda: ::core::ffi::c_int,
5476        B: *mut cuDoubleComplex,
5477        ldb: ::core::ffi::c_int,
5478        vl: f64,
5479        vu: f64,
5480        il: ::core::ffi::c_int,
5481        iu: ::core::ffi::c_int,
5482        meig: *mut ::core::ffi::c_int,
5483        W: *mut f64,
5484        work: *mut cuDoubleComplex,
5485        lwork: ::core::ffi::c_int,
5486        info: *mut ::core::ffi::c_int,
5487    ) -> cusolverStatus_t;
5488    pub fn cusolverDnZhegvdx_bufferSize(
5489        handle: cusolverDnHandle_t,
5490        itype: cusolverEigType_t,
5491        jobz: cusolverEigMode_t,
5492        range: cusolverEigRange_t,
5493        uplo: cublasFillMode_t,
5494        n: ::core::ffi::c_int,
5495        A: *const cuDoubleComplex,
5496        lda: ::core::ffi::c_int,
5497        B: *const cuDoubleComplex,
5498        ldb: ::core::ffi::c_int,
5499        vl: f64,
5500        vu: f64,
5501        il: ::core::ffi::c_int,
5502        iu: ::core::ffi::c_int,
5503        meig: *mut ::core::ffi::c_int,
5504        W: *const f64,
5505        lwork: *mut ::core::ffi::c_int,
5506    ) -> cusolverStatus_t;
5507    pub fn cusolverDnZhegvj(
5508        handle: cusolverDnHandle_t,
5509        itype: cusolverEigType_t,
5510        jobz: cusolverEigMode_t,
5511        uplo: cublasFillMode_t,
5512        n: ::core::ffi::c_int,
5513        A: *mut cuDoubleComplex,
5514        lda: ::core::ffi::c_int,
5515        B: *mut cuDoubleComplex,
5516        ldb: ::core::ffi::c_int,
5517        W: *mut f64,
5518        work: *mut cuDoubleComplex,
5519        lwork: ::core::ffi::c_int,
5520        info: *mut ::core::ffi::c_int,
5521        params: syevjInfo_t,
5522    ) -> cusolverStatus_t;
5523    pub fn cusolverDnZhegvj_bufferSize(
5524        handle: cusolverDnHandle_t,
5525        itype: cusolverEigType_t,
5526        jobz: cusolverEigMode_t,
5527        uplo: cublasFillMode_t,
5528        n: ::core::ffi::c_int,
5529        A: *const cuDoubleComplex,
5530        lda: ::core::ffi::c_int,
5531        B: *const cuDoubleComplex,
5532        ldb: ::core::ffi::c_int,
5533        W: *const f64,
5534        lwork: *mut ::core::ffi::c_int,
5535        params: syevjInfo_t,
5536    ) -> cusolverStatus_t;
5537    pub fn cusolverDnZhetrd(
5538        handle: cusolverDnHandle_t,
5539        uplo: cublasFillMode_t,
5540        n: ::core::ffi::c_int,
5541        A: *mut cuDoubleComplex,
5542        lda: ::core::ffi::c_int,
5543        d: *mut f64,
5544        e: *mut f64,
5545        tau: *mut cuDoubleComplex,
5546        work: *mut cuDoubleComplex,
5547        lwork: ::core::ffi::c_int,
5548        info: *mut ::core::ffi::c_int,
5549    ) -> cusolverStatus_t;
5550    pub fn cusolverDnZhetrd_bufferSize(
5551        handle: cusolverDnHandle_t,
5552        uplo: cublasFillMode_t,
5553        n: ::core::ffi::c_int,
5554        A: *const cuDoubleComplex,
5555        lda: ::core::ffi::c_int,
5556        d: *const f64,
5557        e: *const f64,
5558        tau: *const cuDoubleComplex,
5559        lwork: *mut ::core::ffi::c_int,
5560    ) -> cusolverStatus_t;
5561    pub fn cusolverDnZlaswp(
5562        handle: cusolverDnHandle_t,
5563        n: ::core::ffi::c_int,
5564        A: *mut cuDoubleComplex,
5565        lda: ::core::ffi::c_int,
5566        k1: ::core::ffi::c_int,
5567        k2: ::core::ffi::c_int,
5568        devIpiv: *const ::core::ffi::c_int,
5569        incx: ::core::ffi::c_int,
5570    ) -> cusolverStatus_t;
5571    pub fn cusolverDnZlauum(
5572        handle: cusolverDnHandle_t,
5573        uplo: cublasFillMode_t,
5574        n: ::core::ffi::c_int,
5575        A: *mut cuDoubleComplex,
5576        lda: ::core::ffi::c_int,
5577        work: *mut cuDoubleComplex,
5578        lwork: ::core::ffi::c_int,
5579        devInfo: *mut ::core::ffi::c_int,
5580    ) -> cusolverStatus_t;
5581    pub fn cusolverDnZlauum_bufferSize(
5582        handle: cusolverDnHandle_t,
5583        uplo: cublasFillMode_t,
5584        n: ::core::ffi::c_int,
5585        A: *mut cuDoubleComplex,
5586        lda: ::core::ffi::c_int,
5587        lwork: *mut ::core::ffi::c_int,
5588    ) -> cusolverStatus_t;
5589    pub fn cusolverDnZpotrf(
5590        handle: cusolverDnHandle_t,
5591        uplo: cublasFillMode_t,
5592        n: ::core::ffi::c_int,
5593        A: *mut cuDoubleComplex,
5594        lda: ::core::ffi::c_int,
5595        Workspace: *mut cuDoubleComplex,
5596        Lwork: ::core::ffi::c_int,
5597        devInfo: *mut ::core::ffi::c_int,
5598    ) -> cusolverStatus_t;
5599    pub fn cusolverDnZpotrfBatched(
5600        handle: cusolverDnHandle_t,
5601        uplo: cublasFillMode_t,
5602        n: ::core::ffi::c_int,
5603        Aarray: *mut *mut cuDoubleComplex,
5604        lda: ::core::ffi::c_int,
5605        infoArray: *mut ::core::ffi::c_int,
5606        batchSize: ::core::ffi::c_int,
5607    ) -> cusolverStatus_t;
5608    pub fn cusolverDnZpotrf_bufferSize(
5609        handle: cusolverDnHandle_t,
5610        uplo: cublasFillMode_t,
5611        n: ::core::ffi::c_int,
5612        A: *mut cuDoubleComplex,
5613        lda: ::core::ffi::c_int,
5614        Lwork: *mut ::core::ffi::c_int,
5615    ) -> cusolverStatus_t;
5616    pub fn cusolverDnZpotri(
5617        handle: cusolverDnHandle_t,
5618        uplo: cublasFillMode_t,
5619        n: ::core::ffi::c_int,
5620        A: *mut cuDoubleComplex,
5621        lda: ::core::ffi::c_int,
5622        work: *mut cuDoubleComplex,
5623        lwork: ::core::ffi::c_int,
5624        devInfo: *mut ::core::ffi::c_int,
5625    ) -> cusolverStatus_t;
5626    pub fn cusolverDnZpotri_bufferSize(
5627        handle: cusolverDnHandle_t,
5628        uplo: cublasFillMode_t,
5629        n: ::core::ffi::c_int,
5630        A: *mut cuDoubleComplex,
5631        lda: ::core::ffi::c_int,
5632        lwork: *mut ::core::ffi::c_int,
5633    ) -> cusolverStatus_t;
5634    pub fn cusolverDnZpotrs(
5635        handle: cusolverDnHandle_t,
5636        uplo: cublasFillMode_t,
5637        n: ::core::ffi::c_int,
5638        nrhs: ::core::ffi::c_int,
5639        A: *const cuDoubleComplex,
5640        lda: ::core::ffi::c_int,
5641        B: *mut cuDoubleComplex,
5642        ldb: ::core::ffi::c_int,
5643        devInfo: *mut ::core::ffi::c_int,
5644    ) -> cusolverStatus_t;
5645    pub fn cusolverDnZpotrsBatched(
5646        handle: cusolverDnHandle_t,
5647        uplo: cublasFillMode_t,
5648        n: ::core::ffi::c_int,
5649        nrhs: ::core::ffi::c_int,
5650        A: *mut *mut cuDoubleComplex,
5651        lda: ::core::ffi::c_int,
5652        B: *mut *mut cuDoubleComplex,
5653        ldb: ::core::ffi::c_int,
5654        d_info: *mut ::core::ffi::c_int,
5655        batchSize: ::core::ffi::c_int,
5656    ) -> cusolverStatus_t;
5657    pub fn cusolverDnZsytrf(
5658        handle: cusolverDnHandle_t,
5659        uplo: cublasFillMode_t,
5660        n: ::core::ffi::c_int,
5661        A: *mut cuDoubleComplex,
5662        lda: ::core::ffi::c_int,
5663        ipiv: *mut ::core::ffi::c_int,
5664        work: *mut cuDoubleComplex,
5665        lwork: ::core::ffi::c_int,
5666        info: *mut ::core::ffi::c_int,
5667    ) -> cusolverStatus_t;
5668    pub fn cusolverDnZsytrf_bufferSize(
5669        handle: cusolverDnHandle_t,
5670        n: ::core::ffi::c_int,
5671        A: *mut cuDoubleComplex,
5672        lda: ::core::ffi::c_int,
5673        lwork: *mut ::core::ffi::c_int,
5674    ) -> cusolverStatus_t;
5675    pub fn cusolverDnZsytri(
5676        handle: cusolverDnHandle_t,
5677        uplo: cublasFillMode_t,
5678        n: ::core::ffi::c_int,
5679        A: *mut cuDoubleComplex,
5680        lda: ::core::ffi::c_int,
5681        ipiv: *const ::core::ffi::c_int,
5682        work: *mut cuDoubleComplex,
5683        lwork: ::core::ffi::c_int,
5684        info: *mut ::core::ffi::c_int,
5685    ) -> cusolverStatus_t;
5686    pub fn cusolverDnZsytri_bufferSize(
5687        handle: cusolverDnHandle_t,
5688        uplo: cublasFillMode_t,
5689        n: ::core::ffi::c_int,
5690        A: *mut cuDoubleComplex,
5691        lda: ::core::ffi::c_int,
5692        ipiv: *const ::core::ffi::c_int,
5693        lwork: *mut ::core::ffi::c_int,
5694    ) -> cusolverStatus_t;
5695    pub fn cusolverDnZungbr(
5696        handle: cusolverDnHandle_t,
5697        side: cublasSideMode_t,
5698        m: ::core::ffi::c_int,
5699        n: ::core::ffi::c_int,
5700        k: ::core::ffi::c_int,
5701        A: *mut cuDoubleComplex,
5702        lda: ::core::ffi::c_int,
5703        tau: *const cuDoubleComplex,
5704        work: *mut cuDoubleComplex,
5705        lwork: ::core::ffi::c_int,
5706        info: *mut ::core::ffi::c_int,
5707    ) -> cusolverStatus_t;
5708    pub fn cusolverDnZungbr_bufferSize(
5709        handle: cusolverDnHandle_t,
5710        side: cublasSideMode_t,
5711        m: ::core::ffi::c_int,
5712        n: ::core::ffi::c_int,
5713        k: ::core::ffi::c_int,
5714        A: *const cuDoubleComplex,
5715        lda: ::core::ffi::c_int,
5716        tau: *const cuDoubleComplex,
5717        lwork: *mut ::core::ffi::c_int,
5718    ) -> cusolverStatus_t;
5719    pub fn cusolverDnZungqr(
5720        handle: cusolverDnHandle_t,
5721        m: ::core::ffi::c_int,
5722        n: ::core::ffi::c_int,
5723        k: ::core::ffi::c_int,
5724        A: *mut cuDoubleComplex,
5725        lda: ::core::ffi::c_int,
5726        tau: *const cuDoubleComplex,
5727        work: *mut cuDoubleComplex,
5728        lwork: ::core::ffi::c_int,
5729        info: *mut ::core::ffi::c_int,
5730    ) -> cusolverStatus_t;
5731    pub fn cusolverDnZungqr_bufferSize(
5732        handle: cusolverDnHandle_t,
5733        m: ::core::ffi::c_int,
5734        n: ::core::ffi::c_int,
5735        k: ::core::ffi::c_int,
5736        A: *const cuDoubleComplex,
5737        lda: ::core::ffi::c_int,
5738        tau: *const cuDoubleComplex,
5739        lwork: *mut ::core::ffi::c_int,
5740    ) -> cusolverStatus_t;
5741    pub fn cusolverDnZungtr(
5742        handle: cusolverDnHandle_t,
5743        uplo: cublasFillMode_t,
5744        n: ::core::ffi::c_int,
5745        A: *mut cuDoubleComplex,
5746        lda: ::core::ffi::c_int,
5747        tau: *const cuDoubleComplex,
5748        work: *mut cuDoubleComplex,
5749        lwork: ::core::ffi::c_int,
5750        info: *mut ::core::ffi::c_int,
5751    ) -> cusolverStatus_t;
5752    pub fn cusolverDnZungtr_bufferSize(
5753        handle: cusolverDnHandle_t,
5754        uplo: cublasFillMode_t,
5755        n: ::core::ffi::c_int,
5756        A: *const cuDoubleComplex,
5757        lda: ::core::ffi::c_int,
5758        tau: *const cuDoubleComplex,
5759        lwork: *mut ::core::ffi::c_int,
5760    ) -> cusolverStatus_t;
5761    pub fn cusolverDnZunmqr(
5762        handle: cusolverDnHandle_t,
5763        side: cublasSideMode_t,
5764        trans: cublasOperation_t,
5765        m: ::core::ffi::c_int,
5766        n: ::core::ffi::c_int,
5767        k: ::core::ffi::c_int,
5768        A: *const cuDoubleComplex,
5769        lda: ::core::ffi::c_int,
5770        tau: *const cuDoubleComplex,
5771        C: *mut cuDoubleComplex,
5772        ldc: ::core::ffi::c_int,
5773        work: *mut cuDoubleComplex,
5774        lwork: ::core::ffi::c_int,
5775        devInfo: *mut ::core::ffi::c_int,
5776    ) -> cusolverStatus_t;
5777    pub fn cusolverDnZunmqr_bufferSize(
5778        handle: cusolverDnHandle_t,
5779        side: cublasSideMode_t,
5780        trans: cublasOperation_t,
5781        m: ::core::ffi::c_int,
5782        n: ::core::ffi::c_int,
5783        k: ::core::ffi::c_int,
5784        A: *const cuDoubleComplex,
5785        lda: ::core::ffi::c_int,
5786        tau: *const cuDoubleComplex,
5787        C: *const cuDoubleComplex,
5788        ldc: ::core::ffi::c_int,
5789        lwork: *mut ::core::ffi::c_int,
5790    ) -> cusolverStatus_t;
5791    pub fn cusolverDnZunmtr(
5792        handle: cusolverDnHandle_t,
5793        side: cublasSideMode_t,
5794        uplo: cublasFillMode_t,
5795        trans: cublasOperation_t,
5796        m: ::core::ffi::c_int,
5797        n: ::core::ffi::c_int,
5798        A: *mut cuDoubleComplex,
5799        lda: ::core::ffi::c_int,
5800        tau: *mut cuDoubleComplex,
5801        C: *mut cuDoubleComplex,
5802        ldc: ::core::ffi::c_int,
5803        work: *mut cuDoubleComplex,
5804        lwork: ::core::ffi::c_int,
5805        info: *mut ::core::ffi::c_int,
5806    ) -> cusolverStatus_t;
5807    pub fn cusolverDnZunmtr_bufferSize(
5808        handle: cusolverDnHandle_t,
5809        side: cublasSideMode_t,
5810        uplo: cublasFillMode_t,
5811        trans: cublasOperation_t,
5812        m: ::core::ffi::c_int,
5813        n: ::core::ffi::c_int,
5814        A: *const cuDoubleComplex,
5815        lda: ::core::ffi::c_int,
5816        tau: *const cuDoubleComplex,
5817        C: *const cuDoubleComplex,
5818        ldc: ::core::ffi::c_int,
5819        lwork: *mut ::core::ffi::c_int,
5820    ) -> cusolverStatus_t;
5821    pub fn cusolverGetProperty(
5822        type_: libraryPropertyType,
5823        value: *mut ::core::ffi::c_int,
5824    ) -> cusolverStatus_t;
5825    pub fn cusolverGetVersion(version: *mut ::core::ffi::c_int) -> cusolverStatus_t;
5826    pub fn cusolverRfAccessBundledFactorsDevice(
5827        handle: cusolverRfHandle_t,
5828        nnzM: *mut ::core::ffi::c_int,
5829        Mp: *mut *mut ::core::ffi::c_int,
5830        Mi: *mut *mut ::core::ffi::c_int,
5831        Mx: *mut *mut f64,
5832    ) -> cusolverStatus_t;
5833    pub fn cusolverRfAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t;
5834    pub fn cusolverRfBatchAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t;
5835    pub fn cusolverRfBatchRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t;
5836    pub fn cusolverRfBatchResetValues(
5837        batchSize: ::core::ffi::c_int,
5838        n: ::core::ffi::c_int,
5839        nnzA: ::core::ffi::c_int,
5840        csrRowPtrA: *mut ::core::ffi::c_int,
5841        csrColIndA: *mut ::core::ffi::c_int,
5842        csrValA_array: *mut *mut f64,
5843        P: *mut ::core::ffi::c_int,
5844        Q: *mut ::core::ffi::c_int,
5845        handle: cusolverRfHandle_t,
5846    ) -> cusolverStatus_t;
5847    pub fn cusolverRfBatchSetupHost(
5848        batchSize: ::core::ffi::c_int,
5849        n: ::core::ffi::c_int,
5850        nnzA: ::core::ffi::c_int,
5851        h_csrRowPtrA: *mut ::core::ffi::c_int,
5852        h_csrColIndA: *mut ::core::ffi::c_int,
5853        h_csrValA_array: *mut *mut f64,
5854        nnzL: ::core::ffi::c_int,
5855        h_csrRowPtrL: *mut ::core::ffi::c_int,
5856        h_csrColIndL: *mut ::core::ffi::c_int,
5857        h_csrValL: *mut f64,
5858        nnzU: ::core::ffi::c_int,
5859        h_csrRowPtrU: *mut ::core::ffi::c_int,
5860        h_csrColIndU: *mut ::core::ffi::c_int,
5861        h_csrValU: *mut f64,
5862        h_P: *mut ::core::ffi::c_int,
5863        h_Q: *mut ::core::ffi::c_int,
5864        handle: cusolverRfHandle_t,
5865    ) -> cusolverStatus_t;
5866    pub fn cusolverRfBatchSolve(
5867        handle: cusolverRfHandle_t,
5868        P: *mut ::core::ffi::c_int,
5869        Q: *mut ::core::ffi::c_int,
5870        nrhs: ::core::ffi::c_int,
5871        Temp: *mut f64,
5872        ldt: ::core::ffi::c_int,
5873        XF_array: *mut *mut f64,
5874        ldxf: ::core::ffi::c_int,
5875    ) -> cusolverStatus_t;
5876    pub fn cusolverRfBatchZeroPivot(
5877        handle: cusolverRfHandle_t,
5878        position: *mut ::core::ffi::c_int,
5879    ) -> cusolverStatus_t;
5880    pub fn cusolverRfCreate(handle: *mut cusolverRfHandle_t) -> cusolverStatus_t;
5881    pub fn cusolverRfDestroy(handle: cusolverRfHandle_t) -> cusolverStatus_t;
5882    pub fn cusolverRfExtractBundledFactorsHost(
5883        handle: cusolverRfHandle_t,
5884        h_nnzM: *mut ::core::ffi::c_int,
5885        h_Mp: *mut *mut ::core::ffi::c_int,
5886        h_Mi: *mut *mut ::core::ffi::c_int,
5887        h_Mx: *mut *mut f64,
5888    ) -> cusolverStatus_t;
5889    pub fn cusolverRfExtractSplitFactorsHost(
5890        handle: cusolverRfHandle_t,
5891        h_nnzL: *mut ::core::ffi::c_int,
5892        h_csrRowPtrL: *mut *mut ::core::ffi::c_int,
5893        h_csrColIndL: *mut *mut ::core::ffi::c_int,
5894        h_csrValL: *mut *mut f64,
5895        h_nnzU: *mut ::core::ffi::c_int,
5896        h_csrRowPtrU: *mut *mut ::core::ffi::c_int,
5897        h_csrColIndU: *mut *mut ::core::ffi::c_int,
5898        h_csrValU: *mut *mut f64,
5899    ) -> cusolverStatus_t;
5900    pub fn cusolverRfGetAlgs(
5901        handle: cusolverRfHandle_t,
5902        factAlg: *mut cusolverRfFactorization_t,
5903        solveAlg: *mut cusolverRfTriangularSolve_t,
5904    ) -> cusolverStatus_t;
5905    pub fn cusolverRfGetMatrixFormat(
5906        handle: cusolverRfHandle_t,
5907        format: *mut cusolverRfMatrixFormat_t,
5908        diag: *mut cusolverRfUnitDiagonal_t,
5909    ) -> cusolverStatus_t;
5910    pub fn cusolverRfGetNumericBoostReport(
5911        handle: cusolverRfHandle_t,
5912        report: *mut cusolverRfNumericBoostReport_t,
5913    ) -> cusolverStatus_t;
5914    pub fn cusolverRfGetNumericProperties(
5915        handle: cusolverRfHandle_t,
5916        zero: *mut f64,
5917        boost: *mut f64,
5918    ) -> cusolverStatus_t;
5919    pub fn cusolverRfGetResetValuesFastMode(
5920        handle: cusolverRfHandle_t,
5921        fastMode: *mut cusolverRfResetValuesFastMode_t,
5922    ) -> cusolverStatus_t;
5923    pub fn cusolverRfRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t;
5924    pub fn cusolverRfResetValues(
5925        n: ::core::ffi::c_int,
5926        nnzA: ::core::ffi::c_int,
5927        csrRowPtrA: *mut ::core::ffi::c_int,
5928        csrColIndA: *mut ::core::ffi::c_int,
5929        csrValA: *mut f64,
5930        P: *mut ::core::ffi::c_int,
5931        Q: *mut ::core::ffi::c_int,
5932        handle: cusolverRfHandle_t,
5933    ) -> cusolverStatus_t;
5934    pub fn cusolverRfSetAlgs(
5935        handle: cusolverRfHandle_t,
5936        factAlg: cusolverRfFactorization_t,
5937        solveAlg: cusolverRfTriangularSolve_t,
5938    ) -> cusolverStatus_t;
5939    pub fn cusolverRfSetMatrixFormat(
5940        handle: cusolverRfHandle_t,
5941        format: cusolverRfMatrixFormat_t,
5942        diag: cusolverRfUnitDiagonal_t,
5943    ) -> cusolverStatus_t;
5944    pub fn cusolverRfSetNumericProperties(
5945        handle: cusolverRfHandle_t,
5946        zero: f64,
5947        boost: f64,
5948    ) -> cusolverStatus_t;
5949    pub fn cusolverRfSetResetValuesFastMode(
5950        handle: cusolverRfHandle_t,
5951        fastMode: cusolverRfResetValuesFastMode_t,
5952    ) -> cusolverStatus_t;
5953    pub fn cusolverRfSetupDevice(
5954        n: ::core::ffi::c_int,
5955        nnzA: ::core::ffi::c_int,
5956        csrRowPtrA: *mut ::core::ffi::c_int,
5957        csrColIndA: *mut ::core::ffi::c_int,
5958        csrValA: *mut f64,
5959        nnzL: ::core::ffi::c_int,
5960        csrRowPtrL: *mut ::core::ffi::c_int,
5961        csrColIndL: *mut ::core::ffi::c_int,
5962        csrValL: *mut f64,
5963        nnzU: ::core::ffi::c_int,
5964        csrRowPtrU: *mut ::core::ffi::c_int,
5965        csrColIndU: *mut ::core::ffi::c_int,
5966        csrValU: *mut f64,
5967        P: *mut ::core::ffi::c_int,
5968        Q: *mut ::core::ffi::c_int,
5969        handle: cusolverRfHandle_t,
5970    ) -> cusolverStatus_t;
5971    pub fn cusolverRfSetupHost(
5972        n: ::core::ffi::c_int,
5973        nnzA: ::core::ffi::c_int,
5974        h_csrRowPtrA: *mut ::core::ffi::c_int,
5975        h_csrColIndA: *mut ::core::ffi::c_int,
5976        h_csrValA: *mut f64,
5977        nnzL: ::core::ffi::c_int,
5978        h_csrRowPtrL: *mut ::core::ffi::c_int,
5979        h_csrColIndL: *mut ::core::ffi::c_int,
5980        h_csrValL: *mut f64,
5981        nnzU: ::core::ffi::c_int,
5982        h_csrRowPtrU: *mut ::core::ffi::c_int,
5983        h_csrColIndU: *mut ::core::ffi::c_int,
5984        h_csrValU: *mut f64,
5985        h_P: *mut ::core::ffi::c_int,
5986        h_Q: *mut ::core::ffi::c_int,
5987        handle: cusolverRfHandle_t,
5988    ) -> cusolverStatus_t;
5989    pub fn cusolverRfSolve(
5990        handle: cusolverRfHandle_t,
5991        P: *mut ::core::ffi::c_int,
5992        Q: *mut ::core::ffi::c_int,
5993        nrhs: ::core::ffi::c_int,
5994        Temp: *mut f64,
5995        ldt: ::core::ffi::c_int,
5996        XF: *mut f64,
5997        ldxf: ::core::ffi::c_int,
5998    ) -> cusolverStatus_t;
5999    pub fn cusolverSpCcsreigsHost(
6000        handle: cusolverSpHandle_t,
6001        m: ::core::ffi::c_int,
6002        nnz: ::core::ffi::c_int,
6003        descrA: cusparseMatDescr_t,
6004        csrValA: *const cuComplex,
6005        csrRowPtrA: *const ::core::ffi::c_int,
6006        csrColIndA: *const ::core::ffi::c_int,
6007        left_bottom_corner: cuComplex,
6008        right_upper_corner: cuComplex,
6009        num_eigs: *mut ::core::ffi::c_int,
6010    ) -> cusolverStatus_t;
6011    pub fn cusolverSpCcsreigvsi(
6012        handle: cusolverSpHandle_t,
6013        m: ::core::ffi::c_int,
6014        nnz: ::core::ffi::c_int,
6015        descrA: cusparseMatDescr_t,
6016        csrValA: *const cuComplex,
6017        csrRowPtrA: *const ::core::ffi::c_int,
6018        csrColIndA: *const ::core::ffi::c_int,
6019        mu0: cuComplex,
6020        x0: *const cuComplex,
6021        maxite: ::core::ffi::c_int,
6022        eps: f32,
6023        mu: *mut cuComplex,
6024        x: *mut cuComplex,
6025    ) -> cusolverStatus_t;
6026    pub fn cusolverSpCcsreigvsiHost(
6027        handle: cusolverSpHandle_t,
6028        m: ::core::ffi::c_int,
6029        nnz: ::core::ffi::c_int,
6030        descrA: cusparseMatDescr_t,
6031        csrValA: *const cuComplex,
6032        csrRowPtrA: *const ::core::ffi::c_int,
6033        csrColIndA: *const ::core::ffi::c_int,
6034        mu0: cuComplex,
6035        x0: *const cuComplex,
6036        maxite: ::core::ffi::c_int,
6037        tol: f32,
6038        mu: *mut cuComplex,
6039        x: *mut cuComplex,
6040    ) -> cusolverStatus_t;
6041    pub fn cusolverSpCcsrlsqvqrHost(
6042        handle: cusolverSpHandle_t,
6043        m: ::core::ffi::c_int,
6044        n: ::core::ffi::c_int,
6045        nnz: ::core::ffi::c_int,
6046        descrA: cusparseMatDescr_t,
6047        csrValA: *const cuComplex,
6048        csrRowPtrA: *const ::core::ffi::c_int,
6049        csrColIndA: *const ::core::ffi::c_int,
6050        b: *const cuComplex,
6051        tol: f32,
6052        rankA: *mut ::core::ffi::c_int,
6053        x: *mut cuComplex,
6054        p: *mut ::core::ffi::c_int,
6055        min_norm: *mut f32,
6056    ) -> cusolverStatus_t;
6057    pub fn cusolverSpCcsrlsvchol(
6058        handle: cusolverSpHandle_t,
6059        m: ::core::ffi::c_int,
6060        nnz: ::core::ffi::c_int,
6061        descrA: cusparseMatDescr_t,
6062        csrVal: *const cuComplex,
6063        csrRowPtr: *const ::core::ffi::c_int,
6064        csrColInd: *const ::core::ffi::c_int,
6065        b: *const cuComplex,
6066        tol: f32,
6067        reorder: ::core::ffi::c_int,
6068        x: *mut cuComplex,
6069        singularity: *mut ::core::ffi::c_int,
6070    ) -> cusolverStatus_t;
6071    pub fn cusolverSpCcsrlsvcholHost(
6072        handle: cusolverSpHandle_t,
6073        m: ::core::ffi::c_int,
6074        nnz: ::core::ffi::c_int,
6075        descrA: cusparseMatDescr_t,
6076        csrVal: *const cuComplex,
6077        csrRowPtr: *const ::core::ffi::c_int,
6078        csrColInd: *const ::core::ffi::c_int,
6079        b: *const cuComplex,
6080        tol: f32,
6081        reorder: ::core::ffi::c_int,
6082        x: *mut cuComplex,
6083        singularity: *mut ::core::ffi::c_int,
6084    ) -> cusolverStatus_t;
6085    pub fn cusolverSpCcsrlsvluHost(
6086        handle: cusolverSpHandle_t,
6087        n: ::core::ffi::c_int,
6088        nnzA: ::core::ffi::c_int,
6089        descrA: cusparseMatDescr_t,
6090        csrValA: *const cuComplex,
6091        csrRowPtrA: *const ::core::ffi::c_int,
6092        csrColIndA: *const ::core::ffi::c_int,
6093        b: *const cuComplex,
6094        tol: f32,
6095        reorder: ::core::ffi::c_int,
6096        x: *mut cuComplex,
6097        singularity: *mut ::core::ffi::c_int,
6098    ) -> cusolverStatus_t;
6099    pub fn cusolverSpCcsrlsvqr(
6100        handle: cusolverSpHandle_t,
6101        m: ::core::ffi::c_int,
6102        nnz: ::core::ffi::c_int,
6103        descrA: cusparseMatDescr_t,
6104        csrVal: *const cuComplex,
6105        csrRowPtr: *const ::core::ffi::c_int,
6106        csrColInd: *const ::core::ffi::c_int,
6107        b: *const cuComplex,
6108        tol: f32,
6109        reorder: ::core::ffi::c_int,
6110        x: *mut cuComplex,
6111        singularity: *mut ::core::ffi::c_int,
6112    ) -> cusolverStatus_t;
6113    pub fn cusolverSpCcsrlsvqrHost(
6114        handle: cusolverSpHandle_t,
6115        m: ::core::ffi::c_int,
6116        nnz: ::core::ffi::c_int,
6117        descrA: cusparseMatDescr_t,
6118        csrValA: *const cuComplex,
6119        csrRowPtrA: *const ::core::ffi::c_int,
6120        csrColIndA: *const ::core::ffi::c_int,
6121        b: *const cuComplex,
6122        tol: f32,
6123        reorder: ::core::ffi::c_int,
6124        x: *mut cuComplex,
6125        singularity: *mut ::core::ffi::c_int,
6126    ) -> cusolverStatus_t;
6127    pub fn cusolverSpCcsrqrBufferInfoBatched(
6128        handle: cusolverSpHandle_t,
6129        m: ::core::ffi::c_int,
6130        n: ::core::ffi::c_int,
6131        nnz: ::core::ffi::c_int,
6132        descrA: cusparseMatDescr_t,
6133        csrVal: *const cuComplex,
6134        csrRowPtr: *const ::core::ffi::c_int,
6135        csrColInd: *const ::core::ffi::c_int,
6136        batchSize: ::core::ffi::c_int,
6137        info: csrqrInfo_t,
6138        internalDataInBytes: *mut usize,
6139        workspaceInBytes: *mut usize,
6140    ) -> cusolverStatus_t;
6141    pub fn cusolverSpCcsrqrsvBatched(
6142        handle: cusolverSpHandle_t,
6143        m: ::core::ffi::c_int,
6144        n: ::core::ffi::c_int,
6145        nnz: ::core::ffi::c_int,
6146        descrA: cusparseMatDescr_t,
6147        csrValA: *const cuComplex,
6148        csrRowPtrA: *const ::core::ffi::c_int,
6149        csrColIndA: *const ::core::ffi::c_int,
6150        b: *const cuComplex,
6151        x: *mut cuComplex,
6152        batchSize: ::core::ffi::c_int,
6153        info: csrqrInfo_t,
6154        pBuffer: *mut ::core::ffi::c_void,
6155    ) -> cusolverStatus_t;
6156    pub fn cusolverSpCcsrzfdHost(
6157        handle: cusolverSpHandle_t,
6158        n: ::core::ffi::c_int,
6159        nnz: ::core::ffi::c_int,
6160        descrA: cusparseMatDescr_t,
6161        csrValA: *const cuComplex,
6162        csrRowPtrA: *const ::core::ffi::c_int,
6163        csrColIndA: *const ::core::ffi::c_int,
6164        P: *mut ::core::ffi::c_int,
6165        numnz: *mut ::core::ffi::c_int,
6166    ) -> cusolverStatus_t;
6167    pub fn cusolverSpCreate(handle: *mut cusolverSpHandle_t) -> cusolverStatus_t;
6168    pub fn cusolverSpCreateCsrqrInfo(info: *mut csrqrInfo_t) -> cusolverStatus_t;
6169    pub fn cusolverSpDcsreigsHost(
6170        handle: cusolverSpHandle_t,
6171        m: ::core::ffi::c_int,
6172        nnz: ::core::ffi::c_int,
6173        descrA: cusparseMatDescr_t,
6174        csrValA: *const f64,
6175        csrRowPtrA: *const ::core::ffi::c_int,
6176        csrColIndA: *const ::core::ffi::c_int,
6177        left_bottom_corner: cuDoubleComplex,
6178        right_upper_corner: cuDoubleComplex,
6179        num_eigs: *mut ::core::ffi::c_int,
6180    ) -> cusolverStatus_t;
6181    pub fn cusolverSpDcsreigvsi(
6182        handle: cusolverSpHandle_t,
6183        m: ::core::ffi::c_int,
6184        nnz: ::core::ffi::c_int,
6185        descrA: cusparseMatDescr_t,
6186        csrValA: *const f64,
6187        csrRowPtrA: *const ::core::ffi::c_int,
6188        csrColIndA: *const ::core::ffi::c_int,
6189        mu0: f64,
6190        x0: *const f64,
6191        maxite: ::core::ffi::c_int,
6192        eps: f64,
6193        mu: *mut f64,
6194        x: *mut f64,
6195    ) -> cusolverStatus_t;
6196    pub fn cusolverSpDcsreigvsiHost(
6197        handle: cusolverSpHandle_t,
6198        m: ::core::ffi::c_int,
6199        nnz: ::core::ffi::c_int,
6200        descrA: cusparseMatDescr_t,
6201        csrValA: *const f64,
6202        csrRowPtrA: *const ::core::ffi::c_int,
6203        csrColIndA: *const ::core::ffi::c_int,
6204        mu0: f64,
6205        x0: *const f64,
6206        maxite: ::core::ffi::c_int,
6207        tol: f64,
6208        mu: *mut f64,
6209        x: *mut f64,
6210    ) -> cusolverStatus_t;
6211    pub fn cusolverSpDcsrlsqvqrHost(
6212        handle: cusolverSpHandle_t,
6213        m: ::core::ffi::c_int,
6214        n: ::core::ffi::c_int,
6215        nnz: ::core::ffi::c_int,
6216        descrA: cusparseMatDescr_t,
6217        csrValA: *const f64,
6218        csrRowPtrA: *const ::core::ffi::c_int,
6219        csrColIndA: *const ::core::ffi::c_int,
6220        b: *const f64,
6221        tol: f64,
6222        rankA: *mut ::core::ffi::c_int,
6223        x: *mut f64,
6224        p: *mut ::core::ffi::c_int,
6225        min_norm: *mut f64,
6226    ) -> cusolverStatus_t;
6227    pub fn cusolverSpDcsrlsvchol(
6228        handle: cusolverSpHandle_t,
6229        m: ::core::ffi::c_int,
6230        nnz: ::core::ffi::c_int,
6231        descrA: cusparseMatDescr_t,
6232        csrVal: *const f64,
6233        csrRowPtr: *const ::core::ffi::c_int,
6234        csrColInd: *const ::core::ffi::c_int,
6235        b: *const f64,
6236        tol: f64,
6237        reorder: ::core::ffi::c_int,
6238        x: *mut f64,
6239        singularity: *mut ::core::ffi::c_int,
6240    ) -> cusolverStatus_t;
6241    pub fn cusolverSpDcsrlsvcholHost(
6242        handle: cusolverSpHandle_t,
6243        m: ::core::ffi::c_int,
6244        nnz: ::core::ffi::c_int,
6245        descrA: cusparseMatDescr_t,
6246        csrVal: *const f64,
6247        csrRowPtr: *const ::core::ffi::c_int,
6248        csrColInd: *const ::core::ffi::c_int,
6249        b: *const f64,
6250        tol: f64,
6251        reorder: ::core::ffi::c_int,
6252        x: *mut f64,
6253        singularity: *mut ::core::ffi::c_int,
6254    ) -> cusolverStatus_t;
6255    pub fn cusolverSpDcsrlsvluHost(
6256        handle: cusolverSpHandle_t,
6257        n: ::core::ffi::c_int,
6258        nnzA: ::core::ffi::c_int,
6259        descrA: cusparseMatDescr_t,
6260        csrValA: *const f64,
6261        csrRowPtrA: *const ::core::ffi::c_int,
6262        csrColIndA: *const ::core::ffi::c_int,
6263        b: *const f64,
6264        tol: f64,
6265        reorder: ::core::ffi::c_int,
6266        x: *mut f64,
6267        singularity: *mut ::core::ffi::c_int,
6268    ) -> cusolverStatus_t;
6269    pub fn cusolverSpDcsrlsvqr(
6270        handle: cusolverSpHandle_t,
6271        m: ::core::ffi::c_int,
6272        nnz: ::core::ffi::c_int,
6273        descrA: cusparseMatDescr_t,
6274        csrVal: *const f64,
6275        csrRowPtr: *const ::core::ffi::c_int,
6276        csrColInd: *const ::core::ffi::c_int,
6277        b: *const f64,
6278        tol: f64,
6279        reorder: ::core::ffi::c_int,
6280        x: *mut f64,
6281        singularity: *mut ::core::ffi::c_int,
6282    ) -> cusolverStatus_t;
6283    pub fn cusolverSpDcsrlsvqrHost(
6284        handle: cusolverSpHandle_t,
6285        m: ::core::ffi::c_int,
6286        nnz: ::core::ffi::c_int,
6287        descrA: cusparseMatDescr_t,
6288        csrValA: *const f64,
6289        csrRowPtrA: *const ::core::ffi::c_int,
6290        csrColIndA: *const ::core::ffi::c_int,
6291        b: *const f64,
6292        tol: f64,
6293        reorder: ::core::ffi::c_int,
6294        x: *mut f64,
6295        singularity: *mut ::core::ffi::c_int,
6296    ) -> cusolverStatus_t;
6297    pub fn cusolverSpDcsrqrBufferInfoBatched(
6298        handle: cusolverSpHandle_t,
6299        m: ::core::ffi::c_int,
6300        n: ::core::ffi::c_int,
6301        nnz: ::core::ffi::c_int,
6302        descrA: cusparseMatDescr_t,
6303        csrVal: *const f64,
6304        csrRowPtr: *const ::core::ffi::c_int,
6305        csrColInd: *const ::core::ffi::c_int,
6306        batchSize: ::core::ffi::c_int,
6307        info: csrqrInfo_t,
6308        internalDataInBytes: *mut usize,
6309        workspaceInBytes: *mut usize,
6310    ) -> cusolverStatus_t;
6311    pub fn cusolverSpDcsrqrsvBatched(
6312        handle: cusolverSpHandle_t,
6313        m: ::core::ffi::c_int,
6314        n: ::core::ffi::c_int,
6315        nnz: ::core::ffi::c_int,
6316        descrA: cusparseMatDescr_t,
6317        csrValA: *const f64,
6318        csrRowPtrA: *const ::core::ffi::c_int,
6319        csrColIndA: *const ::core::ffi::c_int,
6320        b: *const f64,
6321        x: *mut f64,
6322        batchSize: ::core::ffi::c_int,
6323        info: csrqrInfo_t,
6324        pBuffer: *mut ::core::ffi::c_void,
6325    ) -> cusolverStatus_t;
6326    pub fn cusolverSpDcsrzfdHost(
6327        handle: cusolverSpHandle_t,
6328        n: ::core::ffi::c_int,
6329        nnz: ::core::ffi::c_int,
6330        descrA: cusparseMatDescr_t,
6331        csrValA: *const f64,
6332        csrRowPtrA: *const ::core::ffi::c_int,
6333        csrColIndA: *const ::core::ffi::c_int,
6334        P: *mut ::core::ffi::c_int,
6335        numnz: *mut ::core::ffi::c_int,
6336    ) -> cusolverStatus_t;
6337    pub fn cusolverSpDestroy(handle: cusolverSpHandle_t) -> cusolverStatus_t;
6338    pub fn cusolverSpDestroyCsrqrInfo(info: csrqrInfo_t) -> cusolverStatus_t;
6339    pub fn cusolverSpGetStream(
6340        handle: cusolverSpHandle_t,
6341        streamId: *mut cudaStream_t,
6342    ) -> cusolverStatus_t;
6343    pub fn cusolverSpScsreigsHost(
6344        handle: cusolverSpHandle_t,
6345        m: ::core::ffi::c_int,
6346        nnz: ::core::ffi::c_int,
6347        descrA: cusparseMatDescr_t,
6348        csrValA: *const f32,
6349        csrRowPtrA: *const ::core::ffi::c_int,
6350        csrColIndA: *const ::core::ffi::c_int,
6351        left_bottom_corner: cuComplex,
6352        right_upper_corner: cuComplex,
6353        num_eigs: *mut ::core::ffi::c_int,
6354    ) -> cusolverStatus_t;
6355    pub fn cusolverSpScsreigvsi(
6356        handle: cusolverSpHandle_t,
6357        m: ::core::ffi::c_int,
6358        nnz: ::core::ffi::c_int,
6359        descrA: cusparseMatDescr_t,
6360        csrValA: *const f32,
6361        csrRowPtrA: *const ::core::ffi::c_int,
6362        csrColIndA: *const ::core::ffi::c_int,
6363        mu0: f32,
6364        x0: *const f32,
6365        maxite: ::core::ffi::c_int,
6366        eps: f32,
6367        mu: *mut f32,
6368        x: *mut f32,
6369    ) -> cusolverStatus_t;
6370    pub fn cusolverSpScsreigvsiHost(
6371        handle: cusolverSpHandle_t,
6372        m: ::core::ffi::c_int,
6373        nnz: ::core::ffi::c_int,
6374        descrA: cusparseMatDescr_t,
6375        csrValA: *const f32,
6376        csrRowPtrA: *const ::core::ffi::c_int,
6377        csrColIndA: *const ::core::ffi::c_int,
6378        mu0: f32,
6379        x0: *const f32,
6380        maxite: ::core::ffi::c_int,
6381        tol: f32,
6382        mu: *mut f32,
6383        x: *mut f32,
6384    ) -> cusolverStatus_t;
6385    pub fn cusolverSpScsrlsqvqrHost(
6386        handle: cusolverSpHandle_t,
6387        m: ::core::ffi::c_int,
6388        n: ::core::ffi::c_int,
6389        nnz: ::core::ffi::c_int,
6390        descrA: cusparseMatDescr_t,
6391        csrValA: *const f32,
6392        csrRowPtrA: *const ::core::ffi::c_int,
6393        csrColIndA: *const ::core::ffi::c_int,
6394        b: *const f32,
6395        tol: f32,
6396        rankA: *mut ::core::ffi::c_int,
6397        x: *mut f32,
6398        p: *mut ::core::ffi::c_int,
6399        min_norm: *mut f32,
6400    ) -> cusolverStatus_t;
6401    pub fn cusolverSpScsrlsvchol(
6402        handle: cusolverSpHandle_t,
6403        m: ::core::ffi::c_int,
6404        nnz: ::core::ffi::c_int,
6405        descrA: cusparseMatDescr_t,
6406        csrVal: *const f32,
6407        csrRowPtr: *const ::core::ffi::c_int,
6408        csrColInd: *const ::core::ffi::c_int,
6409        b: *const f32,
6410        tol: f32,
6411        reorder: ::core::ffi::c_int,
6412        x: *mut f32,
6413        singularity: *mut ::core::ffi::c_int,
6414    ) -> cusolverStatus_t;
6415    pub fn cusolverSpScsrlsvcholHost(
6416        handle: cusolverSpHandle_t,
6417        m: ::core::ffi::c_int,
6418        nnz: ::core::ffi::c_int,
6419        descrA: cusparseMatDescr_t,
6420        csrVal: *const f32,
6421        csrRowPtr: *const ::core::ffi::c_int,
6422        csrColInd: *const ::core::ffi::c_int,
6423        b: *const f32,
6424        tol: f32,
6425        reorder: ::core::ffi::c_int,
6426        x: *mut f32,
6427        singularity: *mut ::core::ffi::c_int,
6428    ) -> cusolverStatus_t;
6429    pub fn cusolverSpScsrlsvluHost(
6430        handle: cusolverSpHandle_t,
6431        n: ::core::ffi::c_int,
6432        nnzA: ::core::ffi::c_int,
6433        descrA: cusparseMatDescr_t,
6434        csrValA: *const f32,
6435        csrRowPtrA: *const ::core::ffi::c_int,
6436        csrColIndA: *const ::core::ffi::c_int,
6437        b: *const f32,
6438        tol: f32,
6439        reorder: ::core::ffi::c_int,
6440        x: *mut f32,
6441        singularity: *mut ::core::ffi::c_int,
6442    ) -> cusolverStatus_t;
6443    pub fn cusolverSpScsrlsvqr(
6444        handle: cusolverSpHandle_t,
6445        m: ::core::ffi::c_int,
6446        nnz: ::core::ffi::c_int,
6447        descrA: cusparseMatDescr_t,
6448        csrVal: *const f32,
6449        csrRowPtr: *const ::core::ffi::c_int,
6450        csrColInd: *const ::core::ffi::c_int,
6451        b: *const f32,
6452        tol: f32,
6453        reorder: ::core::ffi::c_int,
6454        x: *mut f32,
6455        singularity: *mut ::core::ffi::c_int,
6456    ) -> cusolverStatus_t;
6457    pub fn cusolverSpScsrlsvqrHost(
6458        handle: cusolverSpHandle_t,
6459        m: ::core::ffi::c_int,
6460        nnz: ::core::ffi::c_int,
6461        descrA: cusparseMatDescr_t,
6462        csrValA: *const f32,
6463        csrRowPtrA: *const ::core::ffi::c_int,
6464        csrColIndA: *const ::core::ffi::c_int,
6465        b: *const f32,
6466        tol: f32,
6467        reorder: ::core::ffi::c_int,
6468        x: *mut f32,
6469        singularity: *mut ::core::ffi::c_int,
6470    ) -> cusolverStatus_t;
6471    pub fn cusolverSpScsrqrBufferInfoBatched(
6472        handle: cusolverSpHandle_t,
6473        m: ::core::ffi::c_int,
6474        n: ::core::ffi::c_int,
6475        nnz: ::core::ffi::c_int,
6476        descrA: cusparseMatDescr_t,
6477        csrVal: *const f32,
6478        csrRowPtr: *const ::core::ffi::c_int,
6479        csrColInd: *const ::core::ffi::c_int,
6480        batchSize: ::core::ffi::c_int,
6481        info: csrqrInfo_t,
6482        internalDataInBytes: *mut usize,
6483        workspaceInBytes: *mut usize,
6484    ) -> cusolverStatus_t;
6485    pub fn cusolverSpScsrqrsvBatched(
6486        handle: cusolverSpHandle_t,
6487        m: ::core::ffi::c_int,
6488        n: ::core::ffi::c_int,
6489        nnz: ::core::ffi::c_int,
6490        descrA: cusparseMatDescr_t,
6491        csrValA: *const f32,
6492        csrRowPtrA: *const ::core::ffi::c_int,
6493        csrColIndA: *const ::core::ffi::c_int,
6494        b: *const f32,
6495        x: *mut f32,
6496        batchSize: ::core::ffi::c_int,
6497        info: csrqrInfo_t,
6498        pBuffer: *mut ::core::ffi::c_void,
6499    ) -> cusolverStatus_t;
6500    pub fn cusolverSpScsrzfdHost(
6501        handle: cusolverSpHandle_t,
6502        n: ::core::ffi::c_int,
6503        nnz: ::core::ffi::c_int,
6504        descrA: cusparseMatDescr_t,
6505        csrValA: *const f32,
6506        csrRowPtrA: *const ::core::ffi::c_int,
6507        csrColIndA: *const ::core::ffi::c_int,
6508        P: *mut ::core::ffi::c_int,
6509        numnz: *mut ::core::ffi::c_int,
6510    ) -> cusolverStatus_t;
6511    pub fn cusolverSpSetStream(
6512        handle: cusolverSpHandle_t,
6513        streamId: cudaStream_t,
6514    ) -> cusolverStatus_t;
6515    pub fn cusolverSpXcsrissymHost(
6516        handle: cusolverSpHandle_t,
6517        m: ::core::ffi::c_int,
6518        nnzA: ::core::ffi::c_int,
6519        descrA: cusparseMatDescr_t,
6520        csrRowPtrA: *const ::core::ffi::c_int,
6521        csrEndPtrA: *const ::core::ffi::c_int,
6522        csrColIndA: *const ::core::ffi::c_int,
6523        issym: *mut ::core::ffi::c_int,
6524    ) -> cusolverStatus_t;
6525    pub fn cusolverSpXcsrmetisndHost(
6526        handle: cusolverSpHandle_t,
6527        n: ::core::ffi::c_int,
6528        nnzA: ::core::ffi::c_int,
6529        descrA: cusparseMatDescr_t,
6530        csrRowPtrA: *const ::core::ffi::c_int,
6531        csrColIndA: *const ::core::ffi::c_int,
6532        options: *const i64,
6533        p: *mut ::core::ffi::c_int,
6534    ) -> cusolverStatus_t;
6535    pub fn cusolverSpXcsrpermHost(
6536        handle: cusolverSpHandle_t,
6537        m: ::core::ffi::c_int,
6538        n: ::core::ffi::c_int,
6539        nnzA: ::core::ffi::c_int,
6540        descrA: cusparseMatDescr_t,
6541        csrRowPtrA: *mut ::core::ffi::c_int,
6542        csrColIndA: *mut ::core::ffi::c_int,
6543        p: *const ::core::ffi::c_int,
6544        q: *const ::core::ffi::c_int,
6545        map: *mut ::core::ffi::c_int,
6546        pBuffer: *mut ::core::ffi::c_void,
6547    ) -> cusolverStatus_t;
6548    pub fn cusolverSpXcsrperm_bufferSizeHost(
6549        handle: cusolverSpHandle_t,
6550        m: ::core::ffi::c_int,
6551        n: ::core::ffi::c_int,
6552        nnzA: ::core::ffi::c_int,
6553        descrA: cusparseMatDescr_t,
6554        csrRowPtrA: *const ::core::ffi::c_int,
6555        csrColIndA: *const ::core::ffi::c_int,
6556        p: *const ::core::ffi::c_int,
6557        q: *const ::core::ffi::c_int,
6558        bufferSizeInBytes: *mut usize,
6559    ) -> cusolverStatus_t;
6560    pub fn cusolverSpXcsrqrAnalysisBatched(
6561        handle: cusolverSpHandle_t,
6562        m: ::core::ffi::c_int,
6563        n: ::core::ffi::c_int,
6564        nnzA: ::core::ffi::c_int,
6565        descrA: cusparseMatDescr_t,
6566        csrRowPtrA: *const ::core::ffi::c_int,
6567        csrColIndA: *const ::core::ffi::c_int,
6568        info: csrqrInfo_t,
6569    ) -> cusolverStatus_t;
6570    pub fn cusolverSpXcsrsymamdHost(
6571        handle: cusolverSpHandle_t,
6572        n: ::core::ffi::c_int,
6573        nnzA: ::core::ffi::c_int,
6574        descrA: cusparseMatDescr_t,
6575        csrRowPtrA: *const ::core::ffi::c_int,
6576        csrColIndA: *const ::core::ffi::c_int,
6577        p: *mut ::core::ffi::c_int,
6578    ) -> cusolverStatus_t;
6579    pub fn cusolverSpXcsrsymmdqHost(
6580        handle: cusolverSpHandle_t,
6581        n: ::core::ffi::c_int,
6582        nnzA: ::core::ffi::c_int,
6583        descrA: cusparseMatDescr_t,
6584        csrRowPtrA: *const ::core::ffi::c_int,
6585        csrColIndA: *const ::core::ffi::c_int,
6586        p: *mut ::core::ffi::c_int,
6587    ) -> cusolverStatus_t;
6588    pub fn cusolverSpXcsrsymrcmHost(
6589        handle: cusolverSpHandle_t,
6590        n: ::core::ffi::c_int,
6591        nnzA: ::core::ffi::c_int,
6592        descrA: cusparseMatDescr_t,
6593        csrRowPtrA: *const ::core::ffi::c_int,
6594        csrColIndA: *const ::core::ffi::c_int,
6595        p: *mut ::core::ffi::c_int,
6596    ) -> cusolverStatus_t;
6597    pub fn cusolverSpZcsreigsHost(
6598        handle: cusolverSpHandle_t,
6599        m: ::core::ffi::c_int,
6600        nnz: ::core::ffi::c_int,
6601        descrA: cusparseMatDescr_t,
6602        csrValA: *const cuDoubleComplex,
6603        csrRowPtrA: *const ::core::ffi::c_int,
6604        csrColIndA: *const ::core::ffi::c_int,
6605        left_bottom_corner: cuDoubleComplex,
6606        right_upper_corner: cuDoubleComplex,
6607        num_eigs: *mut ::core::ffi::c_int,
6608    ) -> cusolverStatus_t;
6609    pub fn cusolverSpZcsreigvsi(
6610        handle: cusolverSpHandle_t,
6611        m: ::core::ffi::c_int,
6612        nnz: ::core::ffi::c_int,
6613        descrA: cusparseMatDescr_t,
6614        csrValA: *const cuDoubleComplex,
6615        csrRowPtrA: *const ::core::ffi::c_int,
6616        csrColIndA: *const ::core::ffi::c_int,
6617        mu0: cuDoubleComplex,
6618        x0: *const cuDoubleComplex,
6619        maxite: ::core::ffi::c_int,
6620        eps: f64,
6621        mu: *mut cuDoubleComplex,
6622        x: *mut cuDoubleComplex,
6623    ) -> cusolverStatus_t;
6624    pub fn cusolverSpZcsreigvsiHost(
6625        handle: cusolverSpHandle_t,
6626        m: ::core::ffi::c_int,
6627        nnz: ::core::ffi::c_int,
6628        descrA: cusparseMatDescr_t,
6629        csrValA: *const cuDoubleComplex,
6630        csrRowPtrA: *const ::core::ffi::c_int,
6631        csrColIndA: *const ::core::ffi::c_int,
6632        mu0: cuDoubleComplex,
6633        x0: *const cuDoubleComplex,
6634        maxite: ::core::ffi::c_int,
6635        tol: f64,
6636        mu: *mut cuDoubleComplex,
6637        x: *mut cuDoubleComplex,
6638    ) -> cusolverStatus_t;
6639    pub fn cusolverSpZcsrlsqvqrHost(
6640        handle: cusolverSpHandle_t,
6641        m: ::core::ffi::c_int,
6642        n: ::core::ffi::c_int,
6643        nnz: ::core::ffi::c_int,
6644        descrA: cusparseMatDescr_t,
6645        csrValA: *const cuDoubleComplex,
6646        csrRowPtrA: *const ::core::ffi::c_int,
6647        csrColIndA: *const ::core::ffi::c_int,
6648        b: *const cuDoubleComplex,
6649        tol: f64,
6650        rankA: *mut ::core::ffi::c_int,
6651        x: *mut cuDoubleComplex,
6652        p: *mut ::core::ffi::c_int,
6653        min_norm: *mut f64,
6654    ) -> cusolverStatus_t;
6655    pub fn cusolverSpZcsrlsvchol(
6656        handle: cusolverSpHandle_t,
6657        m: ::core::ffi::c_int,
6658        nnz: ::core::ffi::c_int,
6659        descrA: cusparseMatDescr_t,
6660        csrVal: *const cuDoubleComplex,
6661        csrRowPtr: *const ::core::ffi::c_int,
6662        csrColInd: *const ::core::ffi::c_int,
6663        b: *const cuDoubleComplex,
6664        tol: f64,
6665        reorder: ::core::ffi::c_int,
6666        x: *mut cuDoubleComplex,
6667        singularity: *mut ::core::ffi::c_int,
6668    ) -> cusolverStatus_t;
6669    pub fn cusolverSpZcsrlsvcholHost(
6670        handle: cusolverSpHandle_t,
6671        m: ::core::ffi::c_int,
6672        nnz: ::core::ffi::c_int,
6673        descrA: cusparseMatDescr_t,
6674        csrVal: *const cuDoubleComplex,
6675        csrRowPtr: *const ::core::ffi::c_int,
6676        csrColInd: *const ::core::ffi::c_int,
6677        b: *const cuDoubleComplex,
6678        tol: f64,
6679        reorder: ::core::ffi::c_int,
6680        x: *mut cuDoubleComplex,
6681        singularity: *mut ::core::ffi::c_int,
6682    ) -> cusolverStatus_t;
6683    pub fn cusolverSpZcsrlsvluHost(
6684        handle: cusolverSpHandle_t,
6685        n: ::core::ffi::c_int,
6686        nnzA: ::core::ffi::c_int,
6687        descrA: cusparseMatDescr_t,
6688        csrValA: *const cuDoubleComplex,
6689        csrRowPtrA: *const ::core::ffi::c_int,
6690        csrColIndA: *const ::core::ffi::c_int,
6691        b: *const cuDoubleComplex,
6692        tol: f64,
6693        reorder: ::core::ffi::c_int,
6694        x: *mut cuDoubleComplex,
6695        singularity: *mut ::core::ffi::c_int,
6696    ) -> cusolverStatus_t;
6697    pub fn cusolverSpZcsrlsvqr(
6698        handle: cusolverSpHandle_t,
6699        m: ::core::ffi::c_int,
6700        nnz: ::core::ffi::c_int,
6701        descrA: cusparseMatDescr_t,
6702        csrVal: *const cuDoubleComplex,
6703        csrRowPtr: *const ::core::ffi::c_int,
6704        csrColInd: *const ::core::ffi::c_int,
6705        b: *const cuDoubleComplex,
6706        tol: f64,
6707        reorder: ::core::ffi::c_int,
6708        x: *mut cuDoubleComplex,
6709        singularity: *mut ::core::ffi::c_int,
6710    ) -> cusolverStatus_t;
6711    pub fn cusolverSpZcsrlsvqrHost(
6712        handle: cusolverSpHandle_t,
6713        m: ::core::ffi::c_int,
6714        nnz: ::core::ffi::c_int,
6715        descrA: cusparseMatDescr_t,
6716        csrValA: *const cuDoubleComplex,
6717        csrRowPtrA: *const ::core::ffi::c_int,
6718        csrColIndA: *const ::core::ffi::c_int,
6719        b: *const cuDoubleComplex,
6720        tol: f64,
6721        reorder: ::core::ffi::c_int,
6722        x: *mut cuDoubleComplex,
6723        singularity: *mut ::core::ffi::c_int,
6724    ) -> cusolverStatus_t;
6725    pub fn cusolverSpZcsrqrBufferInfoBatched(
6726        handle: cusolverSpHandle_t,
6727        m: ::core::ffi::c_int,
6728        n: ::core::ffi::c_int,
6729        nnz: ::core::ffi::c_int,
6730        descrA: cusparseMatDescr_t,
6731        csrVal: *const cuDoubleComplex,
6732        csrRowPtr: *const ::core::ffi::c_int,
6733        csrColInd: *const ::core::ffi::c_int,
6734        batchSize: ::core::ffi::c_int,
6735        info: csrqrInfo_t,
6736        internalDataInBytes: *mut usize,
6737        workspaceInBytes: *mut usize,
6738    ) -> cusolverStatus_t;
6739    pub fn cusolverSpZcsrqrsvBatched(
6740        handle: cusolverSpHandle_t,
6741        m: ::core::ffi::c_int,
6742        n: ::core::ffi::c_int,
6743        nnz: ::core::ffi::c_int,
6744        descrA: cusparseMatDescr_t,
6745        csrValA: *const cuDoubleComplex,
6746        csrRowPtrA: *const ::core::ffi::c_int,
6747        csrColIndA: *const ::core::ffi::c_int,
6748        b: *const cuDoubleComplex,
6749        x: *mut cuDoubleComplex,
6750        batchSize: ::core::ffi::c_int,
6751        info: csrqrInfo_t,
6752        pBuffer: *mut ::core::ffi::c_void,
6753    ) -> cusolverStatus_t;
6754    pub fn cusolverSpZcsrzfdHost(
6755        handle: cusolverSpHandle_t,
6756        n: ::core::ffi::c_int,
6757        nnz: ::core::ffi::c_int,
6758        descrA: cusparseMatDescr_t,
6759        csrValA: *const cuDoubleComplex,
6760        csrRowPtrA: *const ::core::ffi::c_int,
6761        csrColIndA: *const ::core::ffi::c_int,
6762        P: *mut ::core::ffi::c_int,
6763        numnz: *mut ::core::ffi::c_int,
6764    ) -> cusolverStatus_t;
6765}
6766#[cfg(feature = "dynamic-loading")]
6767mod loaded {
6768    use super::*;
6769    pub unsafe fn cusolverDnCCgels(
6770        handle: cusolverDnHandle_t,
6771        m: cusolver_int_t,
6772        n: cusolver_int_t,
6773        nrhs: cusolver_int_t,
6774        dA: *mut cuComplex,
6775        ldda: cusolver_int_t,
6776        dB: *mut cuComplex,
6777        lddb: cusolver_int_t,
6778        dX: *mut cuComplex,
6779        lddx: cusolver_int_t,
6780        dWorkspace: *mut ::core::ffi::c_void,
6781        lwork_bytes: usize,
6782        iter: *mut cusolver_int_t,
6783        d_info: *mut cusolver_int_t,
6784    ) -> cusolverStatus_t {
6785        (culib().cusolverDnCCgels)(
6786            handle,
6787            m,
6788            n,
6789            nrhs,
6790            dA,
6791            ldda,
6792            dB,
6793            lddb,
6794            dX,
6795            lddx,
6796            dWorkspace,
6797            lwork_bytes,
6798            iter,
6799            d_info,
6800        )
6801    }
6802    pub unsafe fn cusolverDnCCgels_bufferSize(
6803        handle: cusolverDnHandle_t,
6804        m: cusolver_int_t,
6805        n: cusolver_int_t,
6806        nrhs: cusolver_int_t,
6807        dA: *mut cuComplex,
6808        ldda: cusolver_int_t,
6809        dB: *mut cuComplex,
6810        lddb: cusolver_int_t,
6811        dX: *mut cuComplex,
6812        lddx: cusolver_int_t,
6813        dWorkspace: *mut ::core::ffi::c_void,
6814        lwork_bytes: *mut usize,
6815    ) -> cusolverStatus_t {
6816        (culib().cusolverDnCCgels_bufferSize)(
6817            handle,
6818            m,
6819            n,
6820            nrhs,
6821            dA,
6822            ldda,
6823            dB,
6824            lddb,
6825            dX,
6826            lddx,
6827            dWorkspace,
6828            lwork_bytes,
6829        )
6830    }
6831    pub unsafe fn cusolverDnCCgesv(
6832        handle: cusolverDnHandle_t,
6833        n: cusolver_int_t,
6834        nrhs: cusolver_int_t,
6835        dA: *mut cuComplex,
6836        ldda: cusolver_int_t,
6837        dipiv: *mut cusolver_int_t,
6838        dB: *mut cuComplex,
6839        lddb: cusolver_int_t,
6840        dX: *mut cuComplex,
6841        lddx: cusolver_int_t,
6842        dWorkspace: *mut ::core::ffi::c_void,
6843        lwork_bytes: usize,
6844        iter: *mut cusolver_int_t,
6845        d_info: *mut cusolver_int_t,
6846    ) -> cusolverStatus_t {
6847        (culib().cusolverDnCCgesv)(
6848            handle,
6849            n,
6850            nrhs,
6851            dA,
6852            ldda,
6853            dipiv,
6854            dB,
6855            lddb,
6856            dX,
6857            lddx,
6858            dWorkspace,
6859            lwork_bytes,
6860            iter,
6861            d_info,
6862        )
6863    }
6864    pub unsafe fn cusolverDnCCgesv_bufferSize(
6865        handle: cusolverDnHandle_t,
6866        n: cusolver_int_t,
6867        nrhs: cusolver_int_t,
6868        dA: *mut cuComplex,
6869        ldda: cusolver_int_t,
6870        dipiv: *mut cusolver_int_t,
6871        dB: *mut cuComplex,
6872        lddb: cusolver_int_t,
6873        dX: *mut cuComplex,
6874        lddx: cusolver_int_t,
6875        dWorkspace: *mut ::core::ffi::c_void,
6876        lwork_bytes: *mut usize,
6877    ) -> cusolverStatus_t {
6878        (culib().cusolverDnCCgesv_bufferSize)(
6879            handle,
6880            n,
6881            nrhs,
6882            dA,
6883            ldda,
6884            dipiv,
6885            dB,
6886            lddb,
6887            dX,
6888            lddx,
6889            dWorkspace,
6890            lwork_bytes,
6891        )
6892    }
6893    pub unsafe fn cusolverDnCEgels(
6894        handle: cusolverDnHandle_t,
6895        m: cusolver_int_t,
6896        n: cusolver_int_t,
6897        nrhs: cusolver_int_t,
6898        dA: *mut cuComplex,
6899        ldda: cusolver_int_t,
6900        dB: *mut cuComplex,
6901        lddb: cusolver_int_t,
6902        dX: *mut cuComplex,
6903        lddx: cusolver_int_t,
6904        dWorkspace: *mut ::core::ffi::c_void,
6905        lwork_bytes: usize,
6906        iter: *mut cusolver_int_t,
6907        d_info: *mut cusolver_int_t,
6908    ) -> cusolverStatus_t {
6909        (culib().cusolverDnCEgels)(
6910            handle,
6911            m,
6912            n,
6913            nrhs,
6914            dA,
6915            ldda,
6916            dB,
6917            lddb,
6918            dX,
6919            lddx,
6920            dWorkspace,
6921            lwork_bytes,
6922            iter,
6923            d_info,
6924        )
6925    }
6926    pub unsafe fn cusolverDnCEgels_bufferSize(
6927        handle: cusolverDnHandle_t,
6928        m: cusolver_int_t,
6929        n: cusolver_int_t,
6930        nrhs: cusolver_int_t,
6931        dA: *mut cuComplex,
6932        ldda: cusolver_int_t,
6933        dB: *mut cuComplex,
6934        lddb: cusolver_int_t,
6935        dX: *mut cuComplex,
6936        lddx: cusolver_int_t,
6937        dWorkspace: *mut ::core::ffi::c_void,
6938        lwork_bytes: *mut usize,
6939    ) -> cusolverStatus_t {
6940        (culib().cusolverDnCEgels_bufferSize)(
6941            handle,
6942            m,
6943            n,
6944            nrhs,
6945            dA,
6946            ldda,
6947            dB,
6948            lddb,
6949            dX,
6950            lddx,
6951            dWorkspace,
6952            lwork_bytes,
6953        )
6954    }
6955    pub unsafe fn cusolverDnCEgesv(
6956        handle: cusolverDnHandle_t,
6957        n: cusolver_int_t,
6958        nrhs: cusolver_int_t,
6959        dA: *mut cuComplex,
6960        ldda: cusolver_int_t,
6961        dipiv: *mut cusolver_int_t,
6962        dB: *mut cuComplex,
6963        lddb: cusolver_int_t,
6964        dX: *mut cuComplex,
6965        lddx: cusolver_int_t,
6966        dWorkspace: *mut ::core::ffi::c_void,
6967        lwork_bytes: usize,
6968        iter: *mut cusolver_int_t,
6969        d_info: *mut cusolver_int_t,
6970    ) -> cusolverStatus_t {
6971        (culib().cusolverDnCEgesv)(
6972            handle,
6973            n,
6974            nrhs,
6975            dA,
6976            ldda,
6977            dipiv,
6978            dB,
6979            lddb,
6980            dX,
6981            lddx,
6982            dWorkspace,
6983            lwork_bytes,
6984            iter,
6985            d_info,
6986        )
6987    }
6988    pub unsafe fn cusolverDnCEgesv_bufferSize(
6989        handle: cusolverDnHandle_t,
6990        n: cusolver_int_t,
6991        nrhs: cusolver_int_t,
6992        dA: *mut cuComplex,
6993        ldda: cusolver_int_t,
6994        dipiv: *mut cusolver_int_t,
6995        dB: *mut cuComplex,
6996        lddb: cusolver_int_t,
6997        dX: *mut cuComplex,
6998        lddx: cusolver_int_t,
6999        dWorkspace: *mut ::core::ffi::c_void,
7000        lwork_bytes: *mut usize,
7001    ) -> cusolverStatus_t {
7002        (culib().cusolverDnCEgesv_bufferSize)(
7003            handle,
7004            n,
7005            nrhs,
7006            dA,
7007            ldda,
7008            dipiv,
7009            dB,
7010            lddb,
7011            dX,
7012            lddx,
7013            dWorkspace,
7014            lwork_bytes,
7015        )
7016    }
7017    pub unsafe fn cusolverDnCKgels(
7018        handle: cusolverDnHandle_t,
7019        m: cusolver_int_t,
7020        n: cusolver_int_t,
7021        nrhs: cusolver_int_t,
7022        dA: *mut cuComplex,
7023        ldda: cusolver_int_t,
7024        dB: *mut cuComplex,
7025        lddb: cusolver_int_t,
7026        dX: *mut cuComplex,
7027        lddx: cusolver_int_t,
7028        dWorkspace: *mut ::core::ffi::c_void,
7029        lwork_bytes: usize,
7030        iter: *mut cusolver_int_t,
7031        d_info: *mut cusolver_int_t,
7032    ) -> cusolverStatus_t {
7033        (culib().cusolverDnCKgels)(
7034            handle,
7035            m,
7036            n,
7037            nrhs,
7038            dA,
7039            ldda,
7040            dB,
7041            lddb,
7042            dX,
7043            lddx,
7044            dWorkspace,
7045            lwork_bytes,
7046            iter,
7047            d_info,
7048        )
7049    }
7050    pub unsafe fn cusolverDnCKgels_bufferSize(
7051        handle: cusolverDnHandle_t,
7052        m: cusolver_int_t,
7053        n: cusolver_int_t,
7054        nrhs: cusolver_int_t,
7055        dA: *mut cuComplex,
7056        ldda: cusolver_int_t,
7057        dB: *mut cuComplex,
7058        lddb: cusolver_int_t,
7059        dX: *mut cuComplex,
7060        lddx: cusolver_int_t,
7061        dWorkspace: *mut ::core::ffi::c_void,
7062        lwork_bytes: *mut usize,
7063    ) -> cusolverStatus_t {
7064        (culib().cusolverDnCKgels_bufferSize)(
7065            handle,
7066            m,
7067            n,
7068            nrhs,
7069            dA,
7070            ldda,
7071            dB,
7072            lddb,
7073            dX,
7074            lddx,
7075            dWorkspace,
7076            lwork_bytes,
7077        )
7078    }
7079    pub unsafe fn cusolverDnCKgesv(
7080        handle: cusolverDnHandle_t,
7081        n: cusolver_int_t,
7082        nrhs: cusolver_int_t,
7083        dA: *mut cuComplex,
7084        ldda: cusolver_int_t,
7085        dipiv: *mut cusolver_int_t,
7086        dB: *mut cuComplex,
7087        lddb: cusolver_int_t,
7088        dX: *mut cuComplex,
7089        lddx: cusolver_int_t,
7090        dWorkspace: *mut ::core::ffi::c_void,
7091        lwork_bytes: usize,
7092        iter: *mut cusolver_int_t,
7093        d_info: *mut cusolver_int_t,
7094    ) -> cusolverStatus_t {
7095        (culib().cusolverDnCKgesv)(
7096            handle,
7097            n,
7098            nrhs,
7099            dA,
7100            ldda,
7101            dipiv,
7102            dB,
7103            lddb,
7104            dX,
7105            lddx,
7106            dWorkspace,
7107            lwork_bytes,
7108            iter,
7109            d_info,
7110        )
7111    }
7112    pub unsafe fn cusolverDnCKgesv_bufferSize(
7113        handle: cusolverDnHandle_t,
7114        n: cusolver_int_t,
7115        nrhs: cusolver_int_t,
7116        dA: *mut cuComplex,
7117        ldda: cusolver_int_t,
7118        dipiv: *mut cusolver_int_t,
7119        dB: *mut cuComplex,
7120        lddb: cusolver_int_t,
7121        dX: *mut cuComplex,
7122        lddx: cusolver_int_t,
7123        dWorkspace: *mut ::core::ffi::c_void,
7124        lwork_bytes: *mut usize,
7125    ) -> cusolverStatus_t {
7126        (culib().cusolverDnCKgesv_bufferSize)(
7127            handle,
7128            n,
7129            nrhs,
7130            dA,
7131            ldda,
7132            dipiv,
7133            dB,
7134            lddb,
7135            dX,
7136            lddx,
7137            dWorkspace,
7138            lwork_bytes,
7139        )
7140    }
7141    pub unsafe fn cusolverDnCYgels(
7142        handle: cusolverDnHandle_t,
7143        m: cusolver_int_t,
7144        n: cusolver_int_t,
7145        nrhs: cusolver_int_t,
7146        dA: *mut cuComplex,
7147        ldda: cusolver_int_t,
7148        dB: *mut cuComplex,
7149        lddb: cusolver_int_t,
7150        dX: *mut cuComplex,
7151        lddx: cusolver_int_t,
7152        dWorkspace: *mut ::core::ffi::c_void,
7153        lwork_bytes: usize,
7154        iter: *mut cusolver_int_t,
7155        d_info: *mut cusolver_int_t,
7156    ) -> cusolverStatus_t {
7157        (culib().cusolverDnCYgels)(
7158            handle,
7159            m,
7160            n,
7161            nrhs,
7162            dA,
7163            ldda,
7164            dB,
7165            lddb,
7166            dX,
7167            lddx,
7168            dWorkspace,
7169            lwork_bytes,
7170            iter,
7171            d_info,
7172        )
7173    }
7174    pub unsafe fn cusolverDnCYgels_bufferSize(
7175        handle: cusolverDnHandle_t,
7176        m: cusolver_int_t,
7177        n: cusolver_int_t,
7178        nrhs: cusolver_int_t,
7179        dA: *mut cuComplex,
7180        ldda: cusolver_int_t,
7181        dB: *mut cuComplex,
7182        lddb: cusolver_int_t,
7183        dX: *mut cuComplex,
7184        lddx: cusolver_int_t,
7185        dWorkspace: *mut ::core::ffi::c_void,
7186        lwork_bytes: *mut usize,
7187    ) -> cusolverStatus_t {
7188        (culib().cusolverDnCYgels_bufferSize)(
7189            handle,
7190            m,
7191            n,
7192            nrhs,
7193            dA,
7194            ldda,
7195            dB,
7196            lddb,
7197            dX,
7198            lddx,
7199            dWorkspace,
7200            lwork_bytes,
7201        )
7202    }
7203    pub unsafe fn cusolverDnCYgesv(
7204        handle: cusolverDnHandle_t,
7205        n: cusolver_int_t,
7206        nrhs: cusolver_int_t,
7207        dA: *mut cuComplex,
7208        ldda: cusolver_int_t,
7209        dipiv: *mut cusolver_int_t,
7210        dB: *mut cuComplex,
7211        lddb: cusolver_int_t,
7212        dX: *mut cuComplex,
7213        lddx: cusolver_int_t,
7214        dWorkspace: *mut ::core::ffi::c_void,
7215        lwork_bytes: usize,
7216        iter: *mut cusolver_int_t,
7217        d_info: *mut cusolver_int_t,
7218    ) -> cusolverStatus_t {
7219        (culib().cusolverDnCYgesv)(
7220            handle,
7221            n,
7222            nrhs,
7223            dA,
7224            ldda,
7225            dipiv,
7226            dB,
7227            lddb,
7228            dX,
7229            lddx,
7230            dWorkspace,
7231            lwork_bytes,
7232            iter,
7233            d_info,
7234        )
7235    }
7236    pub unsafe fn cusolverDnCYgesv_bufferSize(
7237        handle: cusolverDnHandle_t,
7238        n: cusolver_int_t,
7239        nrhs: cusolver_int_t,
7240        dA: *mut cuComplex,
7241        ldda: cusolver_int_t,
7242        dipiv: *mut cusolver_int_t,
7243        dB: *mut cuComplex,
7244        lddb: cusolver_int_t,
7245        dX: *mut cuComplex,
7246        lddx: cusolver_int_t,
7247        dWorkspace: *mut ::core::ffi::c_void,
7248        lwork_bytes: *mut usize,
7249    ) -> cusolverStatus_t {
7250        (culib().cusolverDnCYgesv_bufferSize)(
7251            handle,
7252            n,
7253            nrhs,
7254            dA,
7255            ldda,
7256            dipiv,
7257            dB,
7258            lddb,
7259            dX,
7260            lddx,
7261            dWorkspace,
7262            lwork_bytes,
7263        )
7264    }
7265    pub unsafe fn cusolverDnCgebrd(
7266        handle: cusolverDnHandle_t,
7267        m: ::core::ffi::c_int,
7268        n: ::core::ffi::c_int,
7269        A: *mut cuComplex,
7270        lda: ::core::ffi::c_int,
7271        D: *mut f32,
7272        E: *mut f32,
7273        TAUQ: *mut cuComplex,
7274        TAUP: *mut cuComplex,
7275        Work: *mut cuComplex,
7276        Lwork: ::core::ffi::c_int,
7277        devInfo: *mut ::core::ffi::c_int,
7278    ) -> cusolverStatus_t {
7279        (culib().cusolverDnCgebrd)(handle, m, n, A, lda, D, E, TAUQ, TAUP, Work, Lwork, devInfo)
7280    }
7281    pub unsafe fn cusolverDnCgebrd_bufferSize(
7282        handle: cusolverDnHandle_t,
7283        m: ::core::ffi::c_int,
7284        n: ::core::ffi::c_int,
7285        Lwork: *mut ::core::ffi::c_int,
7286    ) -> cusolverStatus_t {
7287        (culib().cusolverDnCgebrd_bufferSize)(handle, m, n, Lwork)
7288    }
7289    pub unsafe fn cusolverDnCgeqrf(
7290        handle: cusolverDnHandle_t,
7291        m: ::core::ffi::c_int,
7292        n: ::core::ffi::c_int,
7293        A: *mut cuComplex,
7294        lda: ::core::ffi::c_int,
7295        TAU: *mut cuComplex,
7296        Workspace: *mut cuComplex,
7297        Lwork: ::core::ffi::c_int,
7298        devInfo: *mut ::core::ffi::c_int,
7299    ) -> cusolverStatus_t {
7300        (culib().cusolverDnCgeqrf)(handle, m, n, A, lda, TAU, Workspace, Lwork, devInfo)
7301    }
7302    pub unsafe fn cusolverDnCgeqrf_bufferSize(
7303        handle: cusolverDnHandle_t,
7304        m: ::core::ffi::c_int,
7305        n: ::core::ffi::c_int,
7306        A: *mut cuComplex,
7307        lda: ::core::ffi::c_int,
7308        lwork: *mut ::core::ffi::c_int,
7309    ) -> cusolverStatus_t {
7310        (culib().cusolverDnCgeqrf_bufferSize)(handle, m, n, A, lda, lwork)
7311    }
7312    pub unsafe fn cusolverDnCgesvd(
7313        handle: cusolverDnHandle_t,
7314        jobu: ::core::ffi::c_schar,
7315        jobvt: ::core::ffi::c_schar,
7316        m: ::core::ffi::c_int,
7317        n: ::core::ffi::c_int,
7318        A: *mut cuComplex,
7319        lda: ::core::ffi::c_int,
7320        S: *mut f32,
7321        U: *mut cuComplex,
7322        ldu: ::core::ffi::c_int,
7323        VT: *mut cuComplex,
7324        ldvt: ::core::ffi::c_int,
7325        work: *mut cuComplex,
7326        lwork: ::core::ffi::c_int,
7327        rwork: *mut f32,
7328        info: *mut ::core::ffi::c_int,
7329    ) -> cusolverStatus_t {
7330        (culib().cusolverDnCgesvd)(
7331            handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT, ldvt, work, lwork, rwork, info,
7332        )
7333    }
7334    pub unsafe fn cusolverDnCgesvd_bufferSize(
7335        handle: cusolverDnHandle_t,
7336        m: ::core::ffi::c_int,
7337        n: ::core::ffi::c_int,
7338        lwork: *mut ::core::ffi::c_int,
7339    ) -> cusolverStatus_t {
7340        (culib().cusolverDnCgesvd_bufferSize)(handle, m, n, lwork)
7341    }
7342    pub unsafe fn cusolverDnCgesvdaStridedBatched(
7343        handle: cusolverDnHandle_t,
7344        jobz: cusolverEigMode_t,
7345        rank: ::core::ffi::c_int,
7346        m: ::core::ffi::c_int,
7347        n: ::core::ffi::c_int,
7348        d_A: *const cuComplex,
7349        lda: ::core::ffi::c_int,
7350        strideA: ::core::ffi::c_longlong,
7351        d_S: *mut f32,
7352        strideS: ::core::ffi::c_longlong,
7353        d_U: *mut cuComplex,
7354        ldu: ::core::ffi::c_int,
7355        strideU: ::core::ffi::c_longlong,
7356        d_V: *mut cuComplex,
7357        ldv: ::core::ffi::c_int,
7358        strideV: ::core::ffi::c_longlong,
7359        d_work: *mut cuComplex,
7360        lwork: ::core::ffi::c_int,
7361        d_info: *mut ::core::ffi::c_int,
7362        h_R_nrmF: *mut f64,
7363        batchSize: ::core::ffi::c_int,
7364    ) -> cusolverStatus_t {
7365        (culib().cusolverDnCgesvdaStridedBatched)(
7366            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
7367            strideV, d_work, lwork, d_info, h_R_nrmF, batchSize,
7368        )
7369    }
7370    pub unsafe fn cusolverDnCgesvdaStridedBatched_bufferSize(
7371        handle: cusolverDnHandle_t,
7372        jobz: cusolverEigMode_t,
7373        rank: ::core::ffi::c_int,
7374        m: ::core::ffi::c_int,
7375        n: ::core::ffi::c_int,
7376        d_A: *const cuComplex,
7377        lda: ::core::ffi::c_int,
7378        strideA: ::core::ffi::c_longlong,
7379        d_S: *const f32,
7380        strideS: ::core::ffi::c_longlong,
7381        d_U: *const cuComplex,
7382        ldu: ::core::ffi::c_int,
7383        strideU: ::core::ffi::c_longlong,
7384        d_V: *const cuComplex,
7385        ldv: ::core::ffi::c_int,
7386        strideV: ::core::ffi::c_longlong,
7387        lwork: *mut ::core::ffi::c_int,
7388        batchSize: ::core::ffi::c_int,
7389    ) -> cusolverStatus_t {
7390        (culib().cusolverDnCgesvdaStridedBatched_bufferSize)(
7391            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
7392            strideV, lwork, batchSize,
7393        )
7394    }
7395    pub unsafe fn cusolverDnCgesvdj(
7396        handle: cusolverDnHandle_t,
7397        jobz: cusolverEigMode_t,
7398        econ: ::core::ffi::c_int,
7399        m: ::core::ffi::c_int,
7400        n: ::core::ffi::c_int,
7401        A: *mut cuComplex,
7402        lda: ::core::ffi::c_int,
7403        S: *mut f32,
7404        U: *mut cuComplex,
7405        ldu: ::core::ffi::c_int,
7406        V: *mut cuComplex,
7407        ldv: ::core::ffi::c_int,
7408        work: *mut cuComplex,
7409        lwork: ::core::ffi::c_int,
7410        info: *mut ::core::ffi::c_int,
7411        params: gesvdjInfo_t,
7412    ) -> cusolverStatus_t {
7413        (culib().cusolverDnCgesvdj)(
7414            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params,
7415        )
7416    }
7417    pub unsafe fn cusolverDnCgesvdjBatched(
7418        handle: cusolverDnHandle_t,
7419        jobz: cusolverEigMode_t,
7420        m: ::core::ffi::c_int,
7421        n: ::core::ffi::c_int,
7422        A: *mut cuComplex,
7423        lda: ::core::ffi::c_int,
7424        S: *mut f32,
7425        U: *mut cuComplex,
7426        ldu: ::core::ffi::c_int,
7427        V: *mut cuComplex,
7428        ldv: ::core::ffi::c_int,
7429        work: *mut cuComplex,
7430        lwork: ::core::ffi::c_int,
7431        info: *mut ::core::ffi::c_int,
7432        params: gesvdjInfo_t,
7433        batchSize: ::core::ffi::c_int,
7434    ) -> cusolverStatus_t {
7435        (culib().cusolverDnCgesvdjBatched)(
7436            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params, batchSize,
7437        )
7438    }
7439    pub unsafe fn cusolverDnCgesvdjBatched_bufferSize(
7440        handle: cusolverDnHandle_t,
7441        jobz: cusolverEigMode_t,
7442        m: ::core::ffi::c_int,
7443        n: ::core::ffi::c_int,
7444        A: *const cuComplex,
7445        lda: ::core::ffi::c_int,
7446        S: *const f32,
7447        U: *const cuComplex,
7448        ldu: ::core::ffi::c_int,
7449        V: *const cuComplex,
7450        ldv: ::core::ffi::c_int,
7451        lwork: *mut ::core::ffi::c_int,
7452        params: gesvdjInfo_t,
7453        batchSize: ::core::ffi::c_int,
7454    ) -> cusolverStatus_t {
7455        (culib().cusolverDnCgesvdjBatched_bufferSize)(
7456            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, lwork, params, batchSize,
7457        )
7458    }
7459    pub unsafe fn cusolverDnCgesvdj_bufferSize(
7460        handle: cusolverDnHandle_t,
7461        jobz: cusolverEigMode_t,
7462        econ: ::core::ffi::c_int,
7463        m: ::core::ffi::c_int,
7464        n: ::core::ffi::c_int,
7465        A: *const cuComplex,
7466        lda: ::core::ffi::c_int,
7467        S: *const f32,
7468        U: *const cuComplex,
7469        ldu: ::core::ffi::c_int,
7470        V: *const cuComplex,
7471        ldv: ::core::ffi::c_int,
7472        lwork: *mut ::core::ffi::c_int,
7473        params: gesvdjInfo_t,
7474    ) -> cusolverStatus_t {
7475        (culib().cusolverDnCgesvdj_bufferSize)(
7476            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, lwork, params,
7477        )
7478    }
7479    pub unsafe fn cusolverDnCgetrf(
7480        handle: cusolverDnHandle_t,
7481        m: ::core::ffi::c_int,
7482        n: ::core::ffi::c_int,
7483        A: *mut cuComplex,
7484        lda: ::core::ffi::c_int,
7485        Workspace: *mut cuComplex,
7486        devIpiv: *mut ::core::ffi::c_int,
7487        devInfo: *mut ::core::ffi::c_int,
7488    ) -> cusolverStatus_t {
7489        (culib().cusolverDnCgetrf)(handle, m, n, A, lda, Workspace, devIpiv, devInfo)
7490    }
7491    pub unsafe fn cusolverDnCgetrf_bufferSize(
7492        handle: cusolverDnHandle_t,
7493        m: ::core::ffi::c_int,
7494        n: ::core::ffi::c_int,
7495        A: *mut cuComplex,
7496        lda: ::core::ffi::c_int,
7497        Lwork: *mut ::core::ffi::c_int,
7498    ) -> cusolverStatus_t {
7499        (culib().cusolverDnCgetrf_bufferSize)(handle, m, n, A, lda, Lwork)
7500    }
7501    pub unsafe fn cusolverDnCgetrs(
7502        handle: cusolverDnHandle_t,
7503        trans: cublasOperation_t,
7504        n: ::core::ffi::c_int,
7505        nrhs: ::core::ffi::c_int,
7506        A: *const cuComplex,
7507        lda: ::core::ffi::c_int,
7508        devIpiv: *const ::core::ffi::c_int,
7509        B: *mut cuComplex,
7510        ldb: ::core::ffi::c_int,
7511        devInfo: *mut ::core::ffi::c_int,
7512    ) -> cusolverStatus_t {
7513        (culib().cusolverDnCgetrs)(handle, trans, n, nrhs, A, lda, devIpiv, B, ldb, devInfo)
7514    }
7515    pub unsafe fn cusolverDnCheevd(
7516        handle: cusolverDnHandle_t,
7517        jobz: cusolverEigMode_t,
7518        uplo: cublasFillMode_t,
7519        n: ::core::ffi::c_int,
7520        A: *mut cuComplex,
7521        lda: ::core::ffi::c_int,
7522        W: *mut f32,
7523        work: *mut cuComplex,
7524        lwork: ::core::ffi::c_int,
7525        info: *mut ::core::ffi::c_int,
7526    ) -> cusolverStatus_t {
7527        (culib().cusolverDnCheevd)(handle, jobz, uplo, n, A, lda, W, work, lwork, info)
7528    }
7529    pub unsafe fn cusolverDnCheevd_bufferSize(
7530        handle: cusolverDnHandle_t,
7531        jobz: cusolverEigMode_t,
7532        uplo: cublasFillMode_t,
7533        n: ::core::ffi::c_int,
7534        A: *const cuComplex,
7535        lda: ::core::ffi::c_int,
7536        W: *const f32,
7537        lwork: *mut ::core::ffi::c_int,
7538    ) -> cusolverStatus_t {
7539        (culib().cusolverDnCheevd_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork)
7540    }
7541    pub unsafe fn cusolverDnCheevdx(
7542        handle: cusolverDnHandle_t,
7543        jobz: cusolverEigMode_t,
7544        range: cusolverEigRange_t,
7545        uplo: cublasFillMode_t,
7546        n: ::core::ffi::c_int,
7547        A: *mut cuComplex,
7548        lda: ::core::ffi::c_int,
7549        vl: f32,
7550        vu: f32,
7551        il: ::core::ffi::c_int,
7552        iu: ::core::ffi::c_int,
7553        meig: *mut ::core::ffi::c_int,
7554        W: *mut f32,
7555        work: *mut cuComplex,
7556        lwork: ::core::ffi::c_int,
7557        info: *mut ::core::ffi::c_int,
7558    ) -> cusolverStatus_t {
7559        (culib().cusolverDnCheevdx)(
7560            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, work, lwork, info,
7561        )
7562    }
7563    pub unsafe fn cusolverDnCheevdx_bufferSize(
7564        handle: cusolverDnHandle_t,
7565        jobz: cusolverEigMode_t,
7566        range: cusolverEigRange_t,
7567        uplo: cublasFillMode_t,
7568        n: ::core::ffi::c_int,
7569        A: *const cuComplex,
7570        lda: ::core::ffi::c_int,
7571        vl: f32,
7572        vu: f32,
7573        il: ::core::ffi::c_int,
7574        iu: ::core::ffi::c_int,
7575        meig: *mut ::core::ffi::c_int,
7576        W: *const f32,
7577        lwork: *mut ::core::ffi::c_int,
7578    ) -> cusolverStatus_t {
7579        (culib().cusolverDnCheevdx_bufferSize)(
7580            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, lwork,
7581        )
7582    }
7583    pub unsafe fn cusolverDnCheevj(
7584        handle: cusolverDnHandle_t,
7585        jobz: cusolverEigMode_t,
7586        uplo: cublasFillMode_t,
7587        n: ::core::ffi::c_int,
7588        A: *mut cuComplex,
7589        lda: ::core::ffi::c_int,
7590        W: *mut f32,
7591        work: *mut cuComplex,
7592        lwork: ::core::ffi::c_int,
7593        info: *mut ::core::ffi::c_int,
7594        params: syevjInfo_t,
7595    ) -> cusolverStatus_t {
7596        (culib().cusolverDnCheevj)(handle, jobz, uplo, n, A, lda, W, work, lwork, info, params)
7597    }
7598    pub unsafe fn cusolverDnCheevjBatched(
7599        handle: cusolverDnHandle_t,
7600        jobz: cusolverEigMode_t,
7601        uplo: cublasFillMode_t,
7602        n: ::core::ffi::c_int,
7603        A: *mut cuComplex,
7604        lda: ::core::ffi::c_int,
7605        W: *mut f32,
7606        work: *mut cuComplex,
7607        lwork: ::core::ffi::c_int,
7608        info: *mut ::core::ffi::c_int,
7609        params: syevjInfo_t,
7610        batchSize: ::core::ffi::c_int,
7611    ) -> cusolverStatus_t {
7612        (culib().cusolverDnCheevjBatched)(
7613            handle, jobz, uplo, n, A, lda, W, work, lwork, info, params, batchSize,
7614        )
7615    }
7616    pub unsafe fn cusolverDnCheevjBatched_bufferSize(
7617        handle: cusolverDnHandle_t,
7618        jobz: cusolverEigMode_t,
7619        uplo: cublasFillMode_t,
7620        n: ::core::ffi::c_int,
7621        A: *const cuComplex,
7622        lda: ::core::ffi::c_int,
7623        W: *const f32,
7624        lwork: *mut ::core::ffi::c_int,
7625        params: syevjInfo_t,
7626        batchSize: ::core::ffi::c_int,
7627    ) -> cusolverStatus_t {
7628        (culib().cusolverDnCheevjBatched_bufferSize)(
7629            handle, jobz, uplo, n, A, lda, W, lwork, params, batchSize,
7630        )
7631    }
7632    pub unsafe fn cusolverDnCheevj_bufferSize(
7633        handle: cusolverDnHandle_t,
7634        jobz: cusolverEigMode_t,
7635        uplo: cublasFillMode_t,
7636        n: ::core::ffi::c_int,
7637        A: *const cuComplex,
7638        lda: ::core::ffi::c_int,
7639        W: *const f32,
7640        lwork: *mut ::core::ffi::c_int,
7641        params: syevjInfo_t,
7642    ) -> cusolverStatus_t {
7643        (culib().cusolverDnCheevj_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork, params)
7644    }
7645    pub unsafe fn cusolverDnChegvd(
7646        handle: cusolverDnHandle_t,
7647        itype: cusolverEigType_t,
7648        jobz: cusolverEigMode_t,
7649        uplo: cublasFillMode_t,
7650        n: ::core::ffi::c_int,
7651        A: *mut cuComplex,
7652        lda: ::core::ffi::c_int,
7653        B: *mut cuComplex,
7654        ldb: ::core::ffi::c_int,
7655        W: *mut f32,
7656        work: *mut cuComplex,
7657        lwork: ::core::ffi::c_int,
7658        info: *mut ::core::ffi::c_int,
7659    ) -> cusolverStatus_t {
7660        (culib().cusolverDnChegvd)(
7661            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info,
7662        )
7663    }
7664    pub unsafe fn cusolverDnChegvd_bufferSize(
7665        handle: cusolverDnHandle_t,
7666        itype: cusolverEigType_t,
7667        jobz: cusolverEigMode_t,
7668        uplo: cublasFillMode_t,
7669        n: ::core::ffi::c_int,
7670        A: *const cuComplex,
7671        lda: ::core::ffi::c_int,
7672        B: *const cuComplex,
7673        ldb: ::core::ffi::c_int,
7674        W: *const f32,
7675        lwork: *mut ::core::ffi::c_int,
7676    ) -> cusolverStatus_t {
7677        (culib().cusolverDnChegvd_bufferSize)(
7678            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork,
7679        )
7680    }
7681    pub unsafe fn cusolverDnChegvdx(
7682        handle: cusolverDnHandle_t,
7683        itype: cusolverEigType_t,
7684        jobz: cusolverEigMode_t,
7685        range: cusolverEigRange_t,
7686        uplo: cublasFillMode_t,
7687        n: ::core::ffi::c_int,
7688        A: *mut cuComplex,
7689        lda: ::core::ffi::c_int,
7690        B: *mut cuComplex,
7691        ldb: ::core::ffi::c_int,
7692        vl: f32,
7693        vu: f32,
7694        il: ::core::ffi::c_int,
7695        iu: ::core::ffi::c_int,
7696        meig: *mut ::core::ffi::c_int,
7697        W: *mut f32,
7698        work: *mut cuComplex,
7699        lwork: ::core::ffi::c_int,
7700        info: *mut ::core::ffi::c_int,
7701    ) -> cusolverStatus_t {
7702        (culib().cusolverDnChegvdx)(
7703            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, work,
7704            lwork, info,
7705        )
7706    }
7707    pub unsafe fn cusolverDnChegvdx_bufferSize(
7708        handle: cusolverDnHandle_t,
7709        itype: cusolverEigType_t,
7710        jobz: cusolverEigMode_t,
7711        range: cusolverEigRange_t,
7712        uplo: cublasFillMode_t,
7713        n: ::core::ffi::c_int,
7714        A: *const cuComplex,
7715        lda: ::core::ffi::c_int,
7716        B: *const cuComplex,
7717        ldb: ::core::ffi::c_int,
7718        vl: f32,
7719        vu: f32,
7720        il: ::core::ffi::c_int,
7721        iu: ::core::ffi::c_int,
7722        meig: *mut ::core::ffi::c_int,
7723        W: *const f32,
7724        lwork: *mut ::core::ffi::c_int,
7725    ) -> cusolverStatus_t {
7726        (culib().cusolverDnChegvdx_bufferSize)(
7727            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, lwork,
7728        )
7729    }
7730    pub unsafe fn cusolverDnChegvj(
7731        handle: cusolverDnHandle_t,
7732        itype: cusolverEigType_t,
7733        jobz: cusolverEigMode_t,
7734        uplo: cublasFillMode_t,
7735        n: ::core::ffi::c_int,
7736        A: *mut cuComplex,
7737        lda: ::core::ffi::c_int,
7738        B: *mut cuComplex,
7739        ldb: ::core::ffi::c_int,
7740        W: *mut f32,
7741        work: *mut cuComplex,
7742        lwork: ::core::ffi::c_int,
7743        info: *mut ::core::ffi::c_int,
7744        params: syevjInfo_t,
7745    ) -> cusolverStatus_t {
7746        (culib().cusolverDnChegvj)(
7747            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info, params,
7748        )
7749    }
7750    pub unsafe fn cusolverDnChegvj_bufferSize(
7751        handle: cusolverDnHandle_t,
7752        itype: cusolverEigType_t,
7753        jobz: cusolverEigMode_t,
7754        uplo: cublasFillMode_t,
7755        n: ::core::ffi::c_int,
7756        A: *const cuComplex,
7757        lda: ::core::ffi::c_int,
7758        B: *const cuComplex,
7759        ldb: ::core::ffi::c_int,
7760        W: *const f32,
7761        lwork: *mut ::core::ffi::c_int,
7762        params: syevjInfo_t,
7763    ) -> cusolverStatus_t {
7764        (culib().cusolverDnChegvj_bufferSize)(
7765            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork, params,
7766        )
7767    }
7768    pub unsafe fn cusolverDnChetrd(
7769        handle: cusolverDnHandle_t,
7770        uplo: cublasFillMode_t,
7771        n: ::core::ffi::c_int,
7772        A: *mut cuComplex,
7773        lda: ::core::ffi::c_int,
7774        d: *mut f32,
7775        e: *mut f32,
7776        tau: *mut cuComplex,
7777        work: *mut cuComplex,
7778        lwork: ::core::ffi::c_int,
7779        info: *mut ::core::ffi::c_int,
7780    ) -> cusolverStatus_t {
7781        (culib().cusolverDnChetrd)(handle, uplo, n, A, lda, d, e, tau, work, lwork, info)
7782    }
7783    pub unsafe fn cusolverDnChetrd_bufferSize(
7784        handle: cusolverDnHandle_t,
7785        uplo: cublasFillMode_t,
7786        n: ::core::ffi::c_int,
7787        A: *const cuComplex,
7788        lda: ::core::ffi::c_int,
7789        d: *const f32,
7790        e: *const f32,
7791        tau: *const cuComplex,
7792        lwork: *mut ::core::ffi::c_int,
7793    ) -> cusolverStatus_t {
7794        (culib().cusolverDnChetrd_bufferSize)(handle, uplo, n, A, lda, d, e, tau, lwork)
7795    }
7796    pub unsafe fn cusolverDnClaswp(
7797        handle: cusolverDnHandle_t,
7798        n: ::core::ffi::c_int,
7799        A: *mut cuComplex,
7800        lda: ::core::ffi::c_int,
7801        k1: ::core::ffi::c_int,
7802        k2: ::core::ffi::c_int,
7803        devIpiv: *const ::core::ffi::c_int,
7804        incx: ::core::ffi::c_int,
7805    ) -> cusolverStatus_t {
7806        (culib().cusolverDnClaswp)(handle, n, A, lda, k1, k2, devIpiv, incx)
7807    }
7808    pub unsafe fn cusolverDnClauum(
7809        handle: cusolverDnHandle_t,
7810        uplo: cublasFillMode_t,
7811        n: ::core::ffi::c_int,
7812        A: *mut cuComplex,
7813        lda: ::core::ffi::c_int,
7814        work: *mut cuComplex,
7815        lwork: ::core::ffi::c_int,
7816        devInfo: *mut ::core::ffi::c_int,
7817    ) -> cusolverStatus_t {
7818        (culib().cusolverDnClauum)(handle, uplo, n, A, lda, work, lwork, devInfo)
7819    }
7820    pub unsafe fn cusolverDnClauum_bufferSize(
7821        handle: cusolverDnHandle_t,
7822        uplo: cublasFillMode_t,
7823        n: ::core::ffi::c_int,
7824        A: *mut cuComplex,
7825        lda: ::core::ffi::c_int,
7826        lwork: *mut ::core::ffi::c_int,
7827    ) -> cusolverStatus_t {
7828        (culib().cusolverDnClauum_bufferSize)(handle, uplo, n, A, lda, lwork)
7829    }
7830    pub unsafe fn cusolverDnCpotrf(
7831        handle: cusolverDnHandle_t,
7832        uplo: cublasFillMode_t,
7833        n: ::core::ffi::c_int,
7834        A: *mut cuComplex,
7835        lda: ::core::ffi::c_int,
7836        Workspace: *mut cuComplex,
7837        Lwork: ::core::ffi::c_int,
7838        devInfo: *mut ::core::ffi::c_int,
7839    ) -> cusolverStatus_t {
7840        (culib().cusolverDnCpotrf)(handle, uplo, n, A, lda, Workspace, Lwork, devInfo)
7841    }
7842    pub unsafe fn cusolverDnCpotrfBatched(
7843        handle: cusolverDnHandle_t,
7844        uplo: cublasFillMode_t,
7845        n: ::core::ffi::c_int,
7846        Aarray: *mut *mut cuComplex,
7847        lda: ::core::ffi::c_int,
7848        infoArray: *mut ::core::ffi::c_int,
7849        batchSize: ::core::ffi::c_int,
7850    ) -> cusolverStatus_t {
7851        (culib().cusolverDnCpotrfBatched)(handle, uplo, n, Aarray, lda, infoArray, batchSize)
7852    }
7853    pub unsafe fn cusolverDnCpotrf_bufferSize(
7854        handle: cusolverDnHandle_t,
7855        uplo: cublasFillMode_t,
7856        n: ::core::ffi::c_int,
7857        A: *mut cuComplex,
7858        lda: ::core::ffi::c_int,
7859        Lwork: *mut ::core::ffi::c_int,
7860    ) -> cusolverStatus_t {
7861        (culib().cusolverDnCpotrf_bufferSize)(handle, uplo, n, A, lda, Lwork)
7862    }
7863    pub unsafe fn cusolverDnCpotri(
7864        handle: cusolverDnHandle_t,
7865        uplo: cublasFillMode_t,
7866        n: ::core::ffi::c_int,
7867        A: *mut cuComplex,
7868        lda: ::core::ffi::c_int,
7869        work: *mut cuComplex,
7870        lwork: ::core::ffi::c_int,
7871        devInfo: *mut ::core::ffi::c_int,
7872    ) -> cusolverStatus_t {
7873        (culib().cusolverDnCpotri)(handle, uplo, n, A, lda, work, lwork, devInfo)
7874    }
7875    pub unsafe fn cusolverDnCpotri_bufferSize(
7876        handle: cusolverDnHandle_t,
7877        uplo: cublasFillMode_t,
7878        n: ::core::ffi::c_int,
7879        A: *mut cuComplex,
7880        lda: ::core::ffi::c_int,
7881        lwork: *mut ::core::ffi::c_int,
7882    ) -> cusolverStatus_t {
7883        (culib().cusolverDnCpotri_bufferSize)(handle, uplo, n, A, lda, lwork)
7884    }
7885    pub unsafe fn cusolverDnCpotrs(
7886        handle: cusolverDnHandle_t,
7887        uplo: cublasFillMode_t,
7888        n: ::core::ffi::c_int,
7889        nrhs: ::core::ffi::c_int,
7890        A: *const cuComplex,
7891        lda: ::core::ffi::c_int,
7892        B: *mut cuComplex,
7893        ldb: ::core::ffi::c_int,
7894        devInfo: *mut ::core::ffi::c_int,
7895    ) -> cusolverStatus_t {
7896        (culib().cusolverDnCpotrs)(handle, uplo, n, nrhs, A, lda, B, ldb, devInfo)
7897    }
7898    pub unsafe fn cusolverDnCpotrsBatched(
7899        handle: cusolverDnHandle_t,
7900        uplo: cublasFillMode_t,
7901        n: ::core::ffi::c_int,
7902        nrhs: ::core::ffi::c_int,
7903        A: *mut *mut cuComplex,
7904        lda: ::core::ffi::c_int,
7905        B: *mut *mut cuComplex,
7906        ldb: ::core::ffi::c_int,
7907        d_info: *mut ::core::ffi::c_int,
7908        batchSize: ::core::ffi::c_int,
7909    ) -> cusolverStatus_t {
7910        (culib().cusolverDnCpotrsBatched)(handle, uplo, n, nrhs, A, lda, B, ldb, d_info, batchSize)
7911    }
7912    pub unsafe fn cusolverDnCreate(handle: *mut cusolverDnHandle_t) -> cusolverStatus_t {
7913        (culib().cusolverDnCreate)(handle)
7914    }
7915    pub unsafe fn cusolverDnCreateGesvdjInfo(info: *mut gesvdjInfo_t) -> cusolverStatus_t {
7916        (culib().cusolverDnCreateGesvdjInfo)(info)
7917    }
7918    pub unsafe fn cusolverDnCreateParams(params: *mut cusolverDnParams_t) -> cusolverStatus_t {
7919        (culib().cusolverDnCreateParams)(params)
7920    }
7921    pub unsafe fn cusolverDnCreateSyevjInfo(info: *mut syevjInfo_t) -> cusolverStatus_t {
7922        (culib().cusolverDnCreateSyevjInfo)(info)
7923    }
7924    pub unsafe fn cusolverDnCsytrf(
7925        handle: cusolverDnHandle_t,
7926        uplo: cublasFillMode_t,
7927        n: ::core::ffi::c_int,
7928        A: *mut cuComplex,
7929        lda: ::core::ffi::c_int,
7930        ipiv: *mut ::core::ffi::c_int,
7931        work: *mut cuComplex,
7932        lwork: ::core::ffi::c_int,
7933        info: *mut ::core::ffi::c_int,
7934    ) -> cusolverStatus_t {
7935        (culib().cusolverDnCsytrf)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
7936    }
7937    pub unsafe fn cusolverDnCsytrf_bufferSize(
7938        handle: cusolverDnHandle_t,
7939        n: ::core::ffi::c_int,
7940        A: *mut cuComplex,
7941        lda: ::core::ffi::c_int,
7942        lwork: *mut ::core::ffi::c_int,
7943    ) -> cusolverStatus_t {
7944        (culib().cusolverDnCsytrf_bufferSize)(handle, n, A, lda, lwork)
7945    }
7946    pub unsafe fn cusolverDnCsytri(
7947        handle: cusolverDnHandle_t,
7948        uplo: cublasFillMode_t,
7949        n: ::core::ffi::c_int,
7950        A: *mut cuComplex,
7951        lda: ::core::ffi::c_int,
7952        ipiv: *const ::core::ffi::c_int,
7953        work: *mut cuComplex,
7954        lwork: ::core::ffi::c_int,
7955        info: *mut ::core::ffi::c_int,
7956    ) -> cusolverStatus_t {
7957        (culib().cusolverDnCsytri)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
7958    }
7959    pub unsafe fn cusolverDnCsytri_bufferSize(
7960        handle: cusolverDnHandle_t,
7961        uplo: cublasFillMode_t,
7962        n: ::core::ffi::c_int,
7963        A: *mut cuComplex,
7964        lda: ::core::ffi::c_int,
7965        ipiv: *const ::core::ffi::c_int,
7966        lwork: *mut ::core::ffi::c_int,
7967    ) -> cusolverStatus_t {
7968        (culib().cusolverDnCsytri_bufferSize)(handle, uplo, n, A, lda, ipiv, lwork)
7969    }
7970    pub unsafe fn cusolverDnCungbr(
7971        handle: cusolverDnHandle_t,
7972        side: cublasSideMode_t,
7973        m: ::core::ffi::c_int,
7974        n: ::core::ffi::c_int,
7975        k: ::core::ffi::c_int,
7976        A: *mut cuComplex,
7977        lda: ::core::ffi::c_int,
7978        tau: *const cuComplex,
7979        work: *mut cuComplex,
7980        lwork: ::core::ffi::c_int,
7981        info: *mut ::core::ffi::c_int,
7982    ) -> cusolverStatus_t {
7983        (culib().cusolverDnCungbr)(handle, side, m, n, k, A, lda, tau, work, lwork, info)
7984    }
7985    pub unsafe fn cusolverDnCungbr_bufferSize(
7986        handle: cusolverDnHandle_t,
7987        side: cublasSideMode_t,
7988        m: ::core::ffi::c_int,
7989        n: ::core::ffi::c_int,
7990        k: ::core::ffi::c_int,
7991        A: *const cuComplex,
7992        lda: ::core::ffi::c_int,
7993        tau: *const cuComplex,
7994        lwork: *mut ::core::ffi::c_int,
7995    ) -> cusolverStatus_t {
7996        (culib().cusolverDnCungbr_bufferSize)(handle, side, m, n, k, A, lda, tau, lwork)
7997    }
7998    pub unsafe fn cusolverDnCungqr(
7999        handle: cusolverDnHandle_t,
8000        m: ::core::ffi::c_int,
8001        n: ::core::ffi::c_int,
8002        k: ::core::ffi::c_int,
8003        A: *mut cuComplex,
8004        lda: ::core::ffi::c_int,
8005        tau: *const cuComplex,
8006        work: *mut cuComplex,
8007        lwork: ::core::ffi::c_int,
8008        info: *mut ::core::ffi::c_int,
8009    ) -> cusolverStatus_t {
8010        (culib().cusolverDnCungqr)(handle, m, n, k, A, lda, tau, work, lwork, info)
8011    }
8012    pub unsafe fn cusolverDnCungqr_bufferSize(
8013        handle: cusolverDnHandle_t,
8014        m: ::core::ffi::c_int,
8015        n: ::core::ffi::c_int,
8016        k: ::core::ffi::c_int,
8017        A: *const cuComplex,
8018        lda: ::core::ffi::c_int,
8019        tau: *const cuComplex,
8020        lwork: *mut ::core::ffi::c_int,
8021    ) -> cusolverStatus_t {
8022        (culib().cusolverDnCungqr_bufferSize)(handle, m, n, k, A, lda, tau, lwork)
8023    }
8024    pub unsafe fn cusolverDnCungtr(
8025        handle: cusolverDnHandle_t,
8026        uplo: cublasFillMode_t,
8027        n: ::core::ffi::c_int,
8028        A: *mut cuComplex,
8029        lda: ::core::ffi::c_int,
8030        tau: *const cuComplex,
8031        work: *mut cuComplex,
8032        lwork: ::core::ffi::c_int,
8033        info: *mut ::core::ffi::c_int,
8034    ) -> cusolverStatus_t {
8035        (culib().cusolverDnCungtr)(handle, uplo, n, A, lda, tau, work, lwork, info)
8036    }
8037    pub unsafe fn cusolverDnCungtr_bufferSize(
8038        handle: cusolverDnHandle_t,
8039        uplo: cublasFillMode_t,
8040        n: ::core::ffi::c_int,
8041        A: *const cuComplex,
8042        lda: ::core::ffi::c_int,
8043        tau: *const cuComplex,
8044        lwork: *mut ::core::ffi::c_int,
8045    ) -> cusolverStatus_t {
8046        (culib().cusolverDnCungtr_bufferSize)(handle, uplo, n, A, lda, tau, lwork)
8047    }
8048    pub unsafe fn cusolverDnCunmqr(
8049        handle: cusolverDnHandle_t,
8050        side: cublasSideMode_t,
8051        trans: cublasOperation_t,
8052        m: ::core::ffi::c_int,
8053        n: ::core::ffi::c_int,
8054        k: ::core::ffi::c_int,
8055        A: *const cuComplex,
8056        lda: ::core::ffi::c_int,
8057        tau: *const cuComplex,
8058        C: *mut cuComplex,
8059        ldc: ::core::ffi::c_int,
8060        work: *mut cuComplex,
8061        lwork: ::core::ffi::c_int,
8062        devInfo: *mut ::core::ffi::c_int,
8063    ) -> cusolverStatus_t {
8064        (culib().cusolverDnCunmqr)(
8065            handle, side, trans, m, n, k, A, lda, tau, C, ldc, work, lwork, devInfo,
8066        )
8067    }
8068    pub unsafe fn cusolverDnCunmqr_bufferSize(
8069        handle: cusolverDnHandle_t,
8070        side: cublasSideMode_t,
8071        trans: cublasOperation_t,
8072        m: ::core::ffi::c_int,
8073        n: ::core::ffi::c_int,
8074        k: ::core::ffi::c_int,
8075        A: *const cuComplex,
8076        lda: ::core::ffi::c_int,
8077        tau: *const cuComplex,
8078        C: *const cuComplex,
8079        ldc: ::core::ffi::c_int,
8080        lwork: *mut ::core::ffi::c_int,
8081    ) -> cusolverStatus_t {
8082        (culib().cusolverDnCunmqr_bufferSize)(
8083            handle, side, trans, m, n, k, A, lda, tau, C, ldc, lwork,
8084        )
8085    }
8086    pub unsafe fn cusolverDnCunmtr(
8087        handle: cusolverDnHandle_t,
8088        side: cublasSideMode_t,
8089        uplo: cublasFillMode_t,
8090        trans: cublasOperation_t,
8091        m: ::core::ffi::c_int,
8092        n: ::core::ffi::c_int,
8093        A: *mut cuComplex,
8094        lda: ::core::ffi::c_int,
8095        tau: *mut cuComplex,
8096        C: *mut cuComplex,
8097        ldc: ::core::ffi::c_int,
8098        work: *mut cuComplex,
8099        lwork: ::core::ffi::c_int,
8100        info: *mut ::core::ffi::c_int,
8101    ) -> cusolverStatus_t {
8102        (culib().cusolverDnCunmtr)(
8103            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, work, lwork, info,
8104        )
8105    }
8106    pub unsafe fn cusolverDnCunmtr_bufferSize(
8107        handle: cusolverDnHandle_t,
8108        side: cublasSideMode_t,
8109        uplo: cublasFillMode_t,
8110        trans: cublasOperation_t,
8111        m: ::core::ffi::c_int,
8112        n: ::core::ffi::c_int,
8113        A: *const cuComplex,
8114        lda: ::core::ffi::c_int,
8115        tau: *const cuComplex,
8116        C: *const cuComplex,
8117        ldc: ::core::ffi::c_int,
8118        lwork: *mut ::core::ffi::c_int,
8119    ) -> cusolverStatus_t {
8120        (culib().cusolverDnCunmtr_bufferSize)(
8121            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, lwork,
8122        )
8123    }
8124    pub unsafe fn cusolverDnDBgels(
8125        handle: cusolverDnHandle_t,
8126        m: cusolver_int_t,
8127        n: cusolver_int_t,
8128        nrhs: cusolver_int_t,
8129        dA: *mut f64,
8130        ldda: cusolver_int_t,
8131        dB: *mut f64,
8132        lddb: cusolver_int_t,
8133        dX: *mut f64,
8134        lddx: cusolver_int_t,
8135        dWorkspace: *mut ::core::ffi::c_void,
8136        lwork_bytes: usize,
8137        iter: *mut cusolver_int_t,
8138        d_info: *mut cusolver_int_t,
8139    ) -> cusolverStatus_t {
8140        (culib().cusolverDnDBgels)(
8141            handle,
8142            m,
8143            n,
8144            nrhs,
8145            dA,
8146            ldda,
8147            dB,
8148            lddb,
8149            dX,
8150            lddx,
8151            dWorkspace,
8152            lwork_bytes,
8153            iter,
8154            d_info,
8155        )
8156    }
8157    pub unsafe fn cusolverDnDBgels_bufferSize(
8158        handle: cusolverDnHandle_t,
8159        m: cusolver_int_t,
8160        n: cusolver_int_t,
8161        nrhs: cusolver_int_t,
8162        dA: *mut f64,
8163        ldda: cusolver_int_t,
8164        dB: *mut f64,
8165        lddb: cusolver_int_t,
8166        dX: *mut f64,
8167        lddx: cusolver_int_t,
8168        dWorkspace: *mut ::core::ffi::c_void,
8169        lwork_bytes: *mut usize,
8170    ) -> cusolverStatus_t {
8171        (culib().cusolverDnDBgels_bufferSize)(
8172            handle,
8173            m,
8174            n,
8175            nrhs,
8176            dA,
8177            ldda,
8178            dB,
8179            lddb,
8180            dX,
8181            lddx,
8182            dWorkspace,
8183            lwork_bytes,
8184        )
8185    }
8186    pub unsafe fn cusolverDnDBgesv(
8187        handle: cusolverDnHandle_t,
8188        n: cusolver_int_t,
8189        nrhs: cusolver_int_t,
8190        dA: *mut f64,
8191        ldda: cusolver_int_t,
8192        dipiv: *mut cusolver_int_t,
8193        dB: *mut f64,
8194        lddb: cusolver_int_t,
8195        dX: *mut f64,
8196        lddx: cusolver_int_t,
8197        dWorkspace: *mut ::core::ffi::c_void,
8198        lwork_bytes: usize,
8199        iter: *mut cusolver_int_t,
8200        d_info: *mut cusolver_int_t,
8201    ) -> cusolverStatus_t {
8202        (culib().cusolverDnDBgesv)(
8203            handle,
8204            n,
8205            nrhs,
8206            dA,
8207            ldda,
8208            dipiv,
8209            dB,
8210            lddb,
8211            dX,
8212            lddx,
8213            dWorkspace,
8214            lwork_bytes,
8215            iter,
8216            d_info,
8217        )
8218    }
8219    pub unsafe fn cusolverDnDBgesv_bufferSize(
8220        handle: cusolverDnHandle_t,
8221        n: cusolver_int_t,
8222        nrhs: cusolver_int_t,
8223        dA: *mut f64,
8224        ldda: cusolver_int_t,
8225        dipiv: *mut cusolver_int_t,
8226        dB: *mut f64,
8227        lddb: cusolver_int_t,
8228        dX: *mut f64,
8229        lddx: cusolver_int_t,
8230        dWorkspace: *mut ::core::ffi::c_void,
8231        lwork_bytes: *mut usize,
8232    ) -> cusolverStatus_t {
8233        (culib().cusolverDnDBgesv_bufferSize)(
8234            handle,
8235            n,
8236            nrhs,
8237            dA,
8238            ldda,
8239            dipiv,
8240            dB,
8241            lddb,
8242            dX,
8243            lddx,
8244            dWorkspace,
8245            lwork_bytes,
8246        )
8247    }
8248    pub unsafe fn cusolverDnDDgels(
8249        handle: cusolverDnHandle_t,
8250        m: cusolver_int_t,
8251        n: cusolver_int_t,
8252        nrhs: cusolver_int_t,
8253        dA: *mut f64,
8254        ldda: cusolver_int_t,
8255        dB: *mut f64,
8256        lddb: cusolver_int_t,
8257        dX: *mut f64,
8258        lddx: cusolver_int_t,
8259        dWorkspace: *mut ::core::ffi::c_void,
8260        lwork_bytes: usize,
8261        iter: *mut cusolver_int_t,
8262        d_info: *mut cusolver_int_t,
8263    ) -> cusolverStatus_t {
8264        (culib().cusolverDnDDgels)(
8265            handle,
8266            m,
8267            n,
8268            nrhs,
8269            dA,
8270            ldda,
8271            dB,
8272            lddb,
8273            dX,
8274            lddx,
8275            dWorkspace,
8276            lwork_bytes,
8277            iter,
8278            d_info,
8279        )
8280    }
8281    pub unsafe fn cusolverDnDDgels_bufferSize(
8282        handle: cusolverDnHandle_t,
8283        m: cusolver_int_t,
8284        n: cusolver_int_t,
8285        nrhs: cusolver_int_t,
8286        dA: *mut f64,
8287        ldda: cusolver_int_t,
8288        dB: *mut f64,
8289        lddb: cusolver_int_t,
8290        dX: *mut f64,
8291        lddx: cusolver_int_t,
8292        dWorkspace: *mut ::core::ffi::c_void,
8293        lwork_bytes: *mut usize,
8294    ) -> cusolverStatus_t {
8295        (culib().cusolverDnDDgels_bufferSize)(
8296            handle,
8297            m,
8298            n,
8299            nrhs,
8300            dA,
8301            ldda,
8302            dB,
8303            lddb,
8304            dX,
8305            lddx,
8306            dWorkspace,
8307            lwork_bytes,
8308        )
8309    }
8310    pub unsafe fn cusolverDnDDgesv(
8311        handle: cusolverDnHandle_t,
8312        n: cusolver_int_t,
8313        nrhs: cusolver_int_t,
8314        dA: *mut f64,
8315        ldda: cusolver_int_t,
8316        dipiv: *mut cusolver_int_t,
8317        dB: *mut f64,
8318        lddb: cusolver_int_t,
8319        dX: *mut f64,
8320        lddx: cusolver_int_t,
8321        dWorkspace: *mut ::core::ffi::c_void,
8322        lwork_bytes: usize,
8323        iter: *mut cusolver_int_t,
8324        d_info: *mut cusolver_int_t,
8325    ) -> cusolverStatus_t {
8326        (culib().cusolverDnDDgesv)(
8327            handle,
8328            n,
8329            nrhs,
8330            dA,
8331            ldda,
8332            dipiv,
8333            dB,
8334            lddb,
8335            dX,
8336            lddx,
8337            dWorkspace,
8338            lwork_bytes,
8339            iter,
8340            d_info,
8341        )
8342    }
8343    pub unsafe fn cusolverDnDDgesv_bufferSize(
8344        handle: cusolverDnHandle_t,
8345        n: cusolver_int_t,
8346        nrhs: cusolver_int_t,
8347        dA: *mut f64,
8348        ldda: cusolver_int_t,
8349        dipiv: *mut cusolver_int_t,
8350        dB: *mut f64,
8351        lddb: cusolver_int_t,
8352        dX: *mut f64,
8353        lddx: cusolver_int_t,
8354        dWorkspace: *mut ::core::ffi::c_void,
8355        lwork_bytes: *mut usize,
8356    ) -> cusolverStatus_t {
8357        (culib().cusolverDnDDgesv_bufferSize)(
8358            handle,
8359            n,
8360            nrhs,
8361            dA,
8362            ldda,
8363            dipiv,
8364            dB,
8365            lddb,
8366            dX,
8367            lddx,
8368            dWorkspace,
8369            lwork_bytes,
8370        )
8371    }
8372    pub unsafe fn cusolverDnDHgels(
8373        handle: cusolverDnHandle_t,
8374        m: cusolver_int_t,
8375        n: cusolver_int_t,
8376        nrhs: cusolver_int_t,
8377        dA: *mut f64,
8378        ldda: cusolver_int_t,
8379        dB: *mut f64,
8380        lddb: cusolver_int_t,
8381        dX: *mut f64,
8382        lddx: cusolver_int_t,
8383        dWorkspace: *mut ::core::ffi::c_void,
8384        lwork_bytes: usize,
8385        iter: *mut cusolver_int_t,
8386        d_info: *mut cusolver_int_t,
8387    ) -> cusolverStatus_t {
8388        (culib().cusolverDnDHgels)(
8389            handle,
8390            m,
8391            n,
8392            nrhs,
8393            dA,
8394            ldda,
8395            dB,
8396            lddb,
8397            dX,
8398            lddx,
8399            dWorkspace,
8400            lwork_bytes,
8401            iter,
8402            d_info,
8403        )
8404    }
8405    pub unsafe fn cusolverDnDHgels_bufferSize(
8406        handle: cusolverDnHandle_t,
8407        m: cusolver_int_t,
8408        n: cusolver_int_t,
8409        nrhs: cusolver_int_t,
8410        dA: *mut f64,
8411        ldda: cusolver_int_t,
8412        dB: *mut f64,
8413        lddb: cusolver_int_t,
8414        dX: *mut f64,
8415        lddx: cusolver_int_t,
8416        dWorkspace: *mut ::core::ffi::c_void,
8417        lwork_bytes: *mut usize,
8418    ) -> cusolverStatus_t {
8419        (culib().cusolverDnDHgels_bufferSize)(
8420            handle,
8421            m,
8422            n,
8423            nrhs,
8424            dA,
8425            ldda,
8426            dB,
8427            lddb,
8428            dX,
8429            lddx,
8430            dWorkspace,
8431            lwork_bytes,
8432        )
8433    }
8434    pub unsafe fn cusolverDnDHgesv(
8435        handle: cusolverDnHandle_t,
8436        n: cusolver_int_t,
8437        nrhs: cusolver_int_t,
8438        dA: *mut f64,
8439        ldda: cusolver_int_t,
8440        dipiv: *mut cusolver_int_t,
8441        dB: *mut f64,
8442        lddb: cusolver_int_t,
8443        dX: *mut f64,
8444        lddx: cusolver_int_t,
8445        dWorkspace: *mut ::core::ffi::c_void,
8446        lwork_bytes: usize,
8447        iter: *mut cusolver_int_t,
8448        d_info: *mut cusolver_int_t,
8449    ) -> cusolverStatus_t {
8450        (culib().cusolverDnDHgesv)(
8451            handle,
8452            n,
8453            nrhs,
8454            dA,
8455            ldda,
8456            dipiv,
8457            dB,
8458            lddb,
8459            dX,
8460            lddx,
8461            dWorkspace,
8462            lwork_bytes,
8463            iter,
8464            d_info,
8465        )
8466    }
8467    pub unsafe fn cusolverDnDHgesv_bufferSize(
8468        handle: cusolverDnHandle_t,
8469        n: cusolver_int_t,
8470        nrhs: cusolver_int_t,
8471        dA: *mut f64,
8472        ldda: cusolver_int_t,
8473        dipiv: *mut cusolver_int_t,
8474        dB: *mut f64,
8475        lddb: cusolver_int_t,
8476        dX: *mut f64,
8477        lddx: cusolver_int_t,
8478        dWorkspace: *mut ::core::ffi::c_void,
8479        lwork_bytes: *mut usize,
8480    ) -> cusolverStatus_t {
8481        (culib().cusolverDnDHgesv_bufferSize)(
8482            handle,
8483            n,
8484            nrhs,
8485            dA,
8486            ldda,
8487            dipiv,
8488            dB,
8489            lddb,
8490            dX,
8491            lddx,
8492            dWorkspace,
8493            lwork_bytes,
8494        )
8495    }
8496    pub unsafe fn cusolverDnDSgels(
8497        handle: cusolverDnHandle_t,
8498        m: cusolver_int_t,
8499        n: cusolver_int_t,
8500        nrhs: cusolver_int_t,
8501        dA: *mut f64,
8502        ldda: cusolver_int_t,
8503        dB: *mut f64,
8504        lddb: cusolver_int_t,
8505        dX: *mut f64,
8506        lddx: cusolver_int_t,
8507        dWorkspace: *mut ::core::ffi::c_void,
8508        lwork_bytes: usize,
8509        iter: *mut cusolver_int_t,
8510        d_info: *mut cusolver_int_t,
8511    ) -> cusolverStatus_t {
8512        (culib().cusolverDnDSgels)(
8513            handle,
8514            m,
8515            n,
8516            nrhs,
8517            dA,
8518            ldda,
8519            dB,
8520            lddb,
8521            dX,
8522            lddx,
8523            dWorkspace,
8524            lwork_bytes,
8525            iter,
8526            d_info,
8527        )
8528    }
8529    pub unsafe fn cusolverDnDSgels_bufferSize(
8530        handle: cusolverDnHandle_t,
8531        m: cusolver_int_t,
8532        n: cusolver_int_t,
8533        nrhs: cusolver_int_t,
8534        dA: *mut f64,
8535        ldda: cusolver_int_t,
8536        dB: *mut f64,
8537        lddb: cusolver_int_t,
8538        dX: *mut f64,
8539        lddx: cusolver_int_t,
8540        dWorkspace: *mut ::core::ffi::c_void,
8541        lwork_bytes: *mut usize,
8542    ) -> cusolverStatus_t {
8543        (culib().cusolverDnDSgels_bufferSize)(
8544            handle,
8545            m,
8546            n,
8547            nrhs,
8548            dA,
8549            ldda,
8550            dB,
8551            lddb,
8552            dX,
8553            lddx,
8554            dWorkspace,
8555            lwork_bytes,
8556        )
8557    }
8558    pub unsafe fn cusolverDnDSgesv(
8559        handle: cusolverDnHandle_t,
8560        n: cusolver_int_t,
8561        nrhs: cusolver_int_t,
8562        dA: *mut f64,
8563        ldda: cusolver_int_t,
8564        dipiv: *mut cusolver_int_t,
8565        dB: *mut f64,
8566        lddb: cusolver_int_t,
8567        dX: *mut f64,
8568        lddx: cusolver_int_t,
8569        dWorkspace: *mut ::core::ffi::c_void,
8570        lwork_bytes: usize,
8571        iter: *mut cusolver_int_t,
8572        d_info: *mut cusolver_int_t,
8573    ) -> cusolverStatus_t {
8574        (culib().cusolverDnDSgesv)(
8575            handle,
8576            n,
8577            nrhs,
8578            dA,
8579            ldda,
8580            dipiv,
8581            dB,
8582            lddb,
8583            dX,
8584            lddx,
8585            dWorkspace,
8586            lwork_bytes,
8587            iter,
8588            d_info,
8589        )
8590    }
8591    pub unsafe fn cusolverDnDSgesv_bufferSize(
8592        handle: cusolverDnHandle_t,
8593        n: cusolver_int_t,
8594        nrhs: cusolver_int_t,
8595        dA: *mut f64,
8596        ldda: cusolver_int_t,
8597        dipiv: *mut cusolver_int_t,
8598        dB: *mut f64,
8599        lddb: cusolver_int_t,
8600        dX: *mut f64,
8601        lddx: cusolver_int_t,
8602        dWorkspace: *mut ::core::ffi::c_void,
8603        lwork_bytes: *mut usize,
8604    ) -> cusolverStatus_t {
8605        (culib().cusolverDnDSgesv_bufferSize)(
8606            handle,
8607            n,
8608            nrhs,
8609            dA,
8610            ldda,
8611            dipiv,
8612            dB,
8613            lddb,
8614            dX,
8615            lddx,
8616            dWorkspace,
8617            lwork_bytes,
8618        )
8619    }
8620    pub unsafe fn cusolverDnDXgels(
8621        handle: cusolverDnHandle_t,
8622        m: cusolver_int_t,
8623        n: cusolver_int_t,
8624        nrhs: cusolver_int_t,
8625        dA: *mut f64,
8626        ldda: cusolver_int_t,
8627        dB: *mut f64,
8628        lddb: cusolver_int_t,
8629        dX: *mut f64,
8630        lddx: cusolver_int_t,
8631        dWorkspace: *mut ::core::ffi::c_void,
8632        lwork_bytes: usize,
8633        iter: *mut cusolver_int_t,
8634        d_info: *mut cusolver_int_t,
8635    ) -> cusolverStatus_t {
8636        (culib().cusolverDnDXgels)(
8637            handle,
8638            m,
8639            n,
8640            nrhs,
8641            dA,
8642            ldda,
8643            dB,
8644            lddb,
8645            dX,
8646            lddx,
8647            dWorkspace,
8648            lwork_bytes,
8649            iter,
8650            d_info,
8651        )
8652    }
8653    pub unsafe fn cusolverDnDXgels_bufferSize(
8654        handle: cusolverDnHandle_t,
8655        m: cusolver_int_t,
8656        n: cusolver_int_t,
8657        nrhs: cusolver_int_t,
8658        dA: *mut f64,
8659        ldda: cusolver_int_t,
8660        dB: *mut f64,
8661        lddb: cusolver_int_t,
8662        dX: *mut f64,
8663        lddx: cusolver_int_t,
8664        dWorkspace: *mut ::core::ffi::c_void,
8665        lwork_bytes: *mut usize,
8666    ) -> cusolverStatus_t {
8667        (culib().cusolverDnDXgels_bufferSize)(
8668            handle,
8669            m,
8670            n,
8671            nrhs,
8672            dA,
8673            ldda,
8674            dB,
8675            lddb,
8676            dX,
8677            lddx,
8678            dWorkspace,
8679            lwork_bytes,
8680        )
8681    }
8682    pub unsafe fn cusolverDnDXgesv(
8683        handle: cusolverDnHandle_t,
8684        n: cusolver_int_t,
8685        nrhs: cusolver_int_t,
8686        dA: *mut f64,
8687        ldda: cusolver_int_t,
8688        dipiv: *mut cusolver_int_t,
8689        dB: *mut f64,
8690        lddb: cusolver_int_t,
8691        dX: *mut f64,
8692        lddx: cusolver_int_t,
8693        dWorkspace: *mut ::core::ffi::c_void,
8694        lwork_bytes: usize,
8695        iter: *mut cusolver_int_t,
8696        d_info: *mut cusolver_int_t,
8697    ) -> cusolverStatus_t {
8698        (culib().cusolverDnDXgesv)(
8699            handle,
8700            n,
8701            nrhs,
8702            dA,
8703            ldda,
8704            dipiv,
8705            dB,
8706            lddb,
8707            dX,
8708            lddx,
8709            dWorkspace,
8710            lwork_bytes,
8711            iter,
8712            d_info,
8713        )
8714    }
8715    pub unsafe fn cusolverDnDXgesv_bufferSize(
8716        handle: cusolverDnHandle_t,
8717        n: cusolver_int_t,
8718        nrhs: cusolver_int_t,
8719        dA: *mut f64,
8720        ldda: cusolver_int_t,
8721        dipiv: *mut cusolver_int_t,
8722        dB: *mut f64,
8723        lddb: cusolver_int_t,
8724        dX: *mut f64,
8725        lddx: cusolver_int_t,
8726        dWorkspace: *mut ::core::ffi::c_void,
8727        lwork_bytes: *mut usize,
8728    ) -> cusolverStatus_t {
8729        (culib().cusolverDnDXgesv_bufferSize)(
8730            handle,
8731            n,
8732            nrhs,
8733            dA,
8734            ldda,
8735            dipiv,
8736            dB,
8737            lddb,
8738            dX,
8739            lddx,
8740            dWorkspace,
8741            lwork_bytes,
8742        )
8743    }
8744    pub unsafe fn cusolverDnDestroy(handle: cusolverDnHandle_t) -> cusolverStatus_t {
8745        (culib().cusolverDnDestroy)(handle)
8746    }
8747    pub unsafe fn cusolverDnDestroyGesvdjInfo(info: gesvdjInfo_t) -> cusolverStatus_t {
8748        (culib().cusolverDnDestroyGesvdjInfo)(info)
8749    }
8750    pub unsafe fn cusolverDnDestroyParams(params: cusolverDnParams_t) -> cusolverStatus_t {
8751        (culib().cusolverDnDestroyParams)(params)
8752    }
8753    pub unsafe fn cusolverDnDestroySyevjInfo(info: syevjInfo_t) -> cusolverStatus_t {
8754        (culib().cusolverDnDestroySyevjInfo)(info)
8755    }
8756    pub unsafe fn cusolverDnDgebrd(
8757        handle: cusolverDnHandle_t,
8758        m: ::core::ffi::c_int,
8759        n: ::core::ffi::c_int,
8760        A: *mut f64,
8761        lda: ::core::ffi::c_int,
8762        D: *mut f64,
8763        E: *mut f64,
8764        TAUQ: *mut f64,
8765        TAUP: *mut f64,
8766        Work: *mut f64,
8767        Lwork: ::core::ffi::c_int,
8768        devInfo: *mut ::core::ffi::c_int,
8769    ) -> cusolverStatus_t {
8770        (culib().cusolverDnDgebrd)(handle, m, n, A, lda, D, E, TAUQ, TAUP, Work, Lwork, devInfo)
8771    }
8772    pub unsafe fn cusolverDnDgebrd_bufferSize(
8773        handle: cusolverDnHandle_t,
8774        m: ::core::ffi::c_int,
8775        n: ::core::ffi::c_int,
8776        Lwork: *mut ::core::ffi::c_int,
8777    ) -> cusolverStatus_t {
8778        (culib().cusolverDnDgebrd_bufferSize)(handle, m, n, Lwork)
8779    }
8780    pub unsafe fn cusolverDnDgeqrf(
8781        handle: cusolverDnHandle_t,
8782        m: ::core::ffi::c_int,
8783        n: ::core::ffi::c_int,
8784        A: *mut f64,
8785        lda: ::core::ffi::c_int,
8786        TAU: *mut f64,
8787        Workspace: *mut f64,
8788        Lwork: ::core::ffi::c_int,
8789        devInfo: *mut ::core::ffi::c_int,
8790    ) -> cusolverStatus_t {
8791        (culib().cusolverDnDgeqrf)(handle, m, n, A, lda, TAU, Workspace, Lwork, devInfo)
8792    }
8793    pub unsafe fn cusolverDnDgeqrf_bufferSize(
8794        handle: cusolverDnHandle_t,
8795        m: ::core::ffi::c_int,
8796        n: ::core::ffi::c_int,
8797        A: *mut f64,
8798        lda: ::core::ffi::c_int,
8799        lwork: *mut ::core::ffi::c_int,
8800    ) -> cusolverStatus_t {
8801        (culib().cusolverDnDgeqrf_bufferSize)(handle, m, n, A, lda, lwork)
8802    }
8803    pub unsafe fn cusolverDnDgesvd(
8804        handle: cusolverDnHandle_t,
8805        jobu: ::core::ffi::c_schar,
8806        jobvt: ::core::ffi::c_schar,
8807        m: ::core::ffi::c_int,
8808        n: ::core::ffi::c_int,
8809        A: *mut f64,
8810        lda: ::core::ffi::c_int,
8811        S: *mut f64,
8812        U: *mut f64,
8813        ldu: ::core::ffi::c_int,
8814        VT: *mut f64,
8815        ldvt: ::core::ffi::c_int,
8816        work: *mut f64,
8817        lwork: ::core::ffi::c_int,
8818        rwork: *mut f64,
8819        info: *mut ::core::ffi::c_int,
8820    ) -> cusolverStatus_t {
8821        (culib().cusolverDnDgesvd)(
8822            handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT, ldvt, work, lwork, rwork, info,
8823        )
8824    }
8825    pub unsafe fn cusolverDnDgesvd_bufferSize(
8826        handle: cusolverDnHandle_t,
8827        m: ::core::ffi::c_int,
8828        n: ::core::ffi::c_int,
8829        lwork: *mut ::core::ffi::c_int,
8830    ) -> cusolverStatus_t {
8831        (culib().cusolverDnDgesvd_bufferSize)(handle, m, n, lwork)
8832    }
8833    pub unsafe fn cusolverDnDgesvdaStridedBatched(
8834        handle: cusolverDnHandle_t,
8835        jobz: cusolverEigMode_t,
8836        rank: ::core::ffi::c_int,
8837        m: ::core::ffi::c_int,
8838        n: ::core::ffi::c_int,
8839        d_A: *const f64,
8840        lda: ::core::ffi::c_int,
8841        strideA: ::core::ffi::c_longlong,
8842        d_S: *mut f64,
8843        strideS: ::core::ffi::c_longlong,
8844        d_U: *mut f64,
8845        ldu: ::core::ffi::c_int,
8846        strideU: ::core::ffi::c_longlong,
8847        d_V: *mut f64,
8848        ldv: ::core::ffi::c_int,
8849        strideV: ::core::ffi::c_longlong,
8850        d_work: *mut f64,
8851        lwork: ::core::ffi::c_int,
8852        d_info: *mut ::core::ffi::c_int,
8853        h_R_nrmF: *mut f64,
8854        batchSize: ::core::ffi::c_int,
8855    ) -> cusolverStatus_t {
8856        (culib().cusolverDnDgesvdaStridedBatched)(
8857            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
8858            strideV, d_work, lwork, d_info, h_R_nrmF, batchSize,
8859        )
8860    }
8861    pub unsafe fn cusolverDnDgesvdaStridedBatched_bufferSize(
8862        handle: cusolverDnHandle_t,
8863        jobz: cusolverEigMode_t,
8864        rank: ::core::ffi::c_int,
8865        m: ::core::ffi::c_int,
8866        n: ::core::ffi::c_int,
8867        d_A: *const f64,
8868        lda: ::core::ffi::c_int,
8869        strideA: ::core::ffi::c_longlong,
8870        d_S: *const f64,
8871        strideS: ::core::ffi::c_longlong,
8872        d_U: *const f64,
8873        ldu: ::core::ffi::c_int,
8874        strideU: ::core::ffi::c_longlong,
8875        d_V: *const f64,
8876        ldv: ::core::ffi::c_int,
8877        strideV: ::core::ffi::c_longlong,
8878        lwork: *mut ::core::ffi::c_int,
8879        batchSize: ::core::ffi::c_int,
8880    ) -> cusolverStatus_t {
8881        (culib().cusolverDnDgesvdaStridedBatched_bufferSize)(
8882            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
8883            strideV, lwork, batchSize,
8884        )
8885    }
8886    pub unsafe fn cusolverDnDgesvdj(
8887        handle: cusolverDnHandle_t,
8888        jobz: cusolverEigMode_t,
8889        econ: ::core::ffi::c_int,
8890        m: ::core::ffi::c_int,
8891        n: ::core::ffi::c_int,
8892        A: *mut f64,
8893        lda: ::core::ffi::c_int,
8894        S: *mut f64,
8895        U: *mut f64,
8896        ldu: ::core::ffi::c_int,
8897        V: *mut f64,
8898        ldv: ::core::ffi::c_int,
8899        work: *mut f64,
8900        lwork: ::core::ffi::c_int,
8901        info: *mut ::core::ffi::c_int,
8902        params: gesvdjInfo_t,
8903    ) -> cusolverStatus_t {
8904        (culib().cusolverDnDgesvdj)(
8905            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params,
8906        )
8907    }
8908    pub unsafe fn cusolverDnDgesvdjBatched(
8909        handle: cusolverDnHandle_t,
8910        jobz: cusolverEigMode_t,
8911        m: ::core::ffi::c_int,
8912        n: ::core::ffi::c_int,
8913        A: *mut f64,
8914        lda: ::core::ffi::c_int,
8915        S: *mut f64,
8916        U: *mut f64,
8917        ldu: ::core::ffi::c_int,
8918        V: *mut f64,
8919        ldv: ::core::ffi::c_int,
8920        work: *mut f64,
8921        lwork: ::core::ffi::c_int,
8922        info: *mut ::core::ffi::c_int,
8923        params: gesvdjInfo_t,
8924        batchSize: ::core::ffi::c_int,
8925    ) -> cusolverStatus_t {
8926        (culib().cusolverDnDgesvdjBatched)(
8927            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params, batchSize,
8928        )
8929    }
8930    pub unsafe fn cusolverDnDgesvdjBatched_bufferSize(
8931        handle: cusolverDnHandle_t,
8932        jobz: cusolverEigMode_t,
8933        m: ::core::ffi::c_int,
8934        n: ::core::ffi::c_int,
8935        A: *const f64,
8936        lda: ::core::ffi::c_int,
8937        S: *const f64,
8938        U: *const f64,
8939        ldu: ::core::ffi::c_int,
8940        V: *const f64,
8941        ldv: ::core::ffi::c_int,
8942        lwork: *mut ::core::ffi::c_int,
8943        params: gesvdjInfo_t,
8944        batchSize: ::core::ffi::c_int,
8945    ) -> cusolverStatus_t {
8946        (culib().cusolverDnDgesvdjBatched_bufferSize)(
8947            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, lwork, params, batchSize,
8948        )
8949    }
8950    pub unsafe fn cusolverDnDgesvdj_bufferSize(
8951        handle: cusolverDnHandle_t,
8952        jobz: cusolverEigMode_t,
8953        econ: ::core::ffi::c_int,
8954        m: ::core::ffi::c_int,
8955        n: ::core::ffi::c_int,
8956        A: *const f64,
8957        lda: ::core::ffi::c_int,
8958        S: *const f64,
8959        U: *const f64,
8960        ldu: ::core::ffi::c_int,
8961        V: *const f64,
8962        ldv: ::core::ffi::c_int,
8963        lwork: *mut ::core::ffi::c_int,
8964        params: gesvdjInfo_t,
8965    ) -> cusolverStatus_t {
8966        (culib().cusolverDnDgesvdj_bufferSize)(
8967            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, lwork, params,
8968        )
8969    }
8970    pub unsafe fn cusolverDnDgetrf(
8971        handle: cusolverDnHandle_t,
8972        m: ::core::ffi::c_int,
8973        n: ::core::ffi::c_int,
8974        A: *mut f64,
8975        lda: ::core::ffi::c_int,
8976        Workspace: *mut f64,
8977        devIpiv: *mut ::core::ffi::c_int,
8978        devInfo: *mut ::core::ffi::c_int,
8979    ) -> cusolverStatus_t {
8980        (culib().cusolverDnDgetrf)(handle, m, n, A, lda, Workspace, devIpiv, devInfo)
8981    }
8982    pub unsafe fn cusolverDnDgetrf_bufferSize(
8983        handle: cusolverDnHandle_t,
8984        m: ::core::ffi::c_int,
8985        n: ::core::ffi::c_int,
8986        A: *mut f64,
8987        lda: ::core::ffi::c_int,
8988        Lwork: *mut ::core::ffi::c_int,
8989    ) -> cusolverStatus_t {
8990        (culib().cusolverDnDgetrf_bufferSize)(handle, m, n, A, lda, Lwork)
8991    }
8992    pub unsafe fn cusolverDnDgetrs(
8993        handle: cusolverDnHandle_t,
8994        trans: cublasOperation_t,
8995        n: ::core::ffi::c_int,
8996        nrhs: ::core::ffi::c_int,
8997        A: *const f64,
8998        lda: ::core::ffi::c_int,
8999        devIpiv: *const ::core::ffi::c_int,
9000        B: *mut f64,
9001        ldb: ::core::ffi::c_int,
9002        devInfo: *mut ::core::ffi::c_int,
9003    ) -> cusolverStatus_t {
9004        (culib().cusolverDnDgetrs)(handle, trans, n, nrhs, A, lda, devIpiv, B, ldb, devInfo)
9005    }
9006    pub unsafe fn cusolverDnDlaswp(
9007        handle: cusolverDnHandle_t,
9008        n: ::core::ffi::c_int,
9009        A: *mut f64,
9010        lda: ::core::ffi::c_int,
9011        k1: ::core::ffi::c_int,
9012        k2: ::core::ffi::c_int,
9013        devIpiv: *const ::core::ffi::c_int,
9014        incx: ::core::ffi::c_int,
9015    ) -> cusolverStatus_t {
9016        (culib().cusolverDnDlaswp)(handle, n, A, lda, k1, k2, devIpiv, incx)
9017    }
9018    pub unsafe fn cusolverDnDlauum(
9019        handle: cusolverDnHandle_t,
9020        uplo: cublasFillMode_t,
9021        n: ::core::ffi::c_int,
9022        A: *mut f64,
9023        lda: ::core::ffi::c_int,
9024        work: *mut f64,
9025        lwork: ::core::ffi::c_int,
9026        devInfo: *mut ::core::ffi::c_int,
9027    ) -> cusolverStatus_t {
9028        (culib().cusolverDnDlauum)(handle, uplo, n, A, lda, work, lwork, devInfo)
9029    }
9030    pub unsafe fn cusolverDnDlauum_bufferSize(
9031        handle: cusolverDnHandle_t,
9032        uplo: cublasFillMode_t,
9033        n: ::core::ffi::c_int,
9034        A: *mut f64,
9035        lda: ::core::ffi::c_int,
9036        lwork: *mut ::core::ffi::c_int,
9037    ) -> cusolverStatus_t {
9038        (culib().cusolverDnDlauum_bufferSize)(handle, uplo, n, A, lda, lwork)
9039    }
9040    pub unsafe fn cusolverDnDorgbr(
9041        handle: cusolverDnHandle_t,
9042        side: cublasSideMode_t,
9043        m: ::core::ffi::c_int,
9044        n: ::core::ffi::c_int,
9045        k: ::core::ffi::c_int,
9046        A: *mut f64,
9047        lda: ::core::ffi::c_int,
9048        tau: *const f64,
9049        work: *mut f64,
9050        lwork: ::core::ffi::c_int,
9051        info: *mut ::core::ffi::c_int,
9052    ) -> cusolverStatus_t {
9053        (culib().cusolverDnDorgbr)(handle, side, m, n, k, A, lda, tau, work, lwork, info)
9054    }
9055    pub unsafe fn cusolverDnDorgbr_bufferSize(
9056        handle: cusolverDnHandle_t,
9057        side: cublasSideMode_t,
9058        m: ::core::ffi::c_int,
9059        n: ::core::ffi::c_int,
9060        k: ::core::ffi::c_int,
9061        A: *const f64,
9062        lda: ::core::ffi::c_int,
9063        tau: *const f64,
9064        lwork: *mut ::core::ffi::c_int,
9065    ) -> cusolverStatus_t {
9066        (culib().cusolverDnDorgbr_bufferSize)(handle, side, m, n, k, A, lda, tau, lwork)
9067    }
9068    pub unsafe fn cusolverDnDorgqr(
9069        handle: cusolverDnHandle_t,
9070        m: ::core::ffi::c_int,
9071        n: ::core::ffi::c_int,
9072        k: ::core::ffi::c_int,
9073        A: *mut f64,
9074        lda: ::core::ffi::c_int,
9075        tau: *const f64,
9076        work: *mut f64,
9077        lwork: ::core::ffi::c_int,
9078        info: *mut ::core::ffi::c_int,
9079    ) -> cusolverStatus_t {
9080        (culib().cusolverDnDorgqr)(handle, m, n, k, A, lda, tau, work, lwork, info)
9081    }
9082    pub unsafe fn cusolverDnDorgqr_bufferSize(
9083        handle: cusolverDnHandle_t,
9084        m: ::core::ffi::c_int,
9085        n: ::core::ffi::c_int,
9086        k: ::core::ffi::c_int,
9087        A: *const f64,
9088        lda: ::core::ffi::c_int,
9089        tau: *const f64,
9090        lwork: *mut ::core::ffi::c_int,
9091    ) -> cusolverStatus_t {
9092        (culib().cusolverDnDorgqr_bufferSize)(handle, m, n, k, A, lda, tau, lwork)
9093    }
9094    pub unsafe fn cusolverDnDorgtr(
9095        handle: cusolverDnHandle_t,
9096        uplo: cublasFillMode_t,
9097        n: ::core::ffi::c_int,
9098        A: *mut f64,
9099        lda: ::core::ffi::c_int,
9100        tau: *const f64,
9101        work: *mut f64,
9102        lwork: ::core::ffi::c_int,
9103        info: *mut ::core::ffi::c_int,
9104    ) -> cusolverStatus_t {
9105        (culib().cusolverDnDorgtr)(handle, uplo, n, A, lda, tau, work, lwork, info)
9106    }
9107    pub unsafe fn cusolverDnDorgtr_bufferSize(
9108        handle: cusolverDnHandle_t,
9109        uplo: cublasFillMode_t,
9110        n: ::core::ffi::c_int,
9111        A: *const f64,
9112        lda: ::core::ffi::c_int,
9113        tau: *const f64,
9114        lwork: *mut ::core::ffi::c_int,
9115    ) -> cusolverStatus_t {
9116        (culib().cusolverDnDorgtr_bufferSize)(handle, uplo, n, A, lda, tau, lwork)
9117    }
9118    pub unsafe fn cusolverDnDormqr(
9119        handle: cusolverDnHandle_t,
9120        side: cublasSideMode_t,
9121        trans: cublasOperation_t,
9122        m: ::core::ffi::c_int,
9123        n: ::core::ffi::c_int,
9124        k: ::core::ffi::c_int,
9125        A: *const f64,
9126        lda: ::core::ffi::c_int,
9127        tau: *const f64,
9128        C: *mut f64,
9129        ldc: ::core::ffi::c_int,
9130        work: *mut f64,
9131        lwork: ::core::ffi::c_int,
9132        devInfo: *mut ::core::ffi::c_int,
9133    ) -> cusolverStatus_t {
9134        (culib().cusolverDnDormqr)(
9135            handle, side, trans, m, n, k, A, lda, tau, C, ldc, work, lwork, devInfo,
9136        )
9137    }
9138    pub unsafe fn cusolverDnDormqr_bufferSize(
9139        handle: cusolverDnHandle_t,
9140        side: cublasSideMode_t,
9141        trans: cublasOperation_t,
9142        m: ::core::ffi::c_int,
9143        n: ::core::ffi::c_int,
9144        k: ::core::ffi::c_int,
9145        A: *const f64,
9146        lda: ::core::ffi::c_int,
9147        tau: *const f64,
9148        C: *const f64,
9149        ldc: ::core::ffi::c_int,
9150        lwork: *mut ::core::ffi::c_int,
9151    ) -> cusolverStatus_t {
9152        (culib().cusolverDnDormqr_bufferSize)(
9153            handle, side, trans, m, n, k, A, lda, tau, C, ldc, lwork,
9154        )
9155    }
9156    pub unsafe fn cusolverDnDormtr(
9157        handle: cusolverDnHandle_t,
9158        side: cublasSideMode_t,
9159        uplo: cublasFillMode_t,
9160        trans: cublasOperation_t,
9161        m: ::core::ffi::c_int,
9162        n: ::core::ffi::c_int,
9163        A: *mut f64,
9164        lda: ::core::ffi::c_int,
9165        tau: *mut f64,
9166        C: *mut f64,
9167        ldc: ::core::ffi::c_int,
9168        work: *mut f64,
9169        lwork: ::core::ffi::c_int,
9170        info: *mut ::core::ffi::c_int,
9171    ) -> cusolverStatus_t {
9172        (culib().cusolverDnDormtr)(
9173            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, work, lwork, info,
9174        )
9175    }
9176    pub unsafe fn cusolverDnDormtr_bufferSize(
9177        handle: cusolverDnHandle_t,
9178        side: cublasSideMode_t,
9179        uplo: cublasFillMode_t,
9180        trans: cublasOperation_t,
9181        m: ::core::ffi::c_int,
9182        n: ::core::ffi::c_int,
9183        A: *const f64,
9184        lda: ::core::ffi::c_int,
9185        tau: *const f64,
9186        C: *const f64,
9187        ldc: ::core::ffi::c_int,
9188        lwork: *mut ::core::ffi::c_int,
9189    ) -> cusolverStatus_t {
9190        (culib().cusolverDnDormtr_bufferSize)(
9191            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, lwork,
9192        )
9193    }
9194    pub unsafe fn cusolverDnDpotrf(
9195        handle: cusolverDnHandle_t,
9196        uplo: cublasFillMode_t,
9197        n: ::core::ffi::c_int,
9198        A: *mut f64,
9199        lda: ::core::ffi::c_int,
9200        Workspace: *mut f64,
9201        Lwork: ::core::ffi::c_int,
9202        devInfo: *mut ::core::ffi::c_int,
9203    ) -> cusolverStatus_t {
9204        (culib().cusolverDnDpotrf)(handle, uplo, n, A, lda, Workspace, Lwork, devInfo)
9205    }
9206    pub unsafe fn cusolverDnDpotrfBatched(
9207        handle: cusolverDnHandle_t,
9208        uplo: cublasFillMode_t,
9209        n: ::core::ffi::c_int,
9210        Aarray: *mut *mut f64,
9211        lda: ::core::ffi::c_int,
9212        infoArray: *mut ::core::ffi::c_int,
9213        batchSize: ::core::ffi::c_int,
9214    ) -> cusolverStatus_t {
9215        (culib().cusolverDnDpotrfBatched)(handle, uplo, n, Aarray, lda, infoArray, batchSize)
9216    }
9217    pub unsafe fn cusolverDnDpotrf_bufferSize(
9218        handle: cusolverDnHandle_t,
9219        uplo: cublasFillMode_t,
9220        n: ::core::ffi::c_int,
9221        A: *mut f64,
9222        lda: ::core::ffi::c_int,
9223        Lwork: *mut ::core::ffi::c_int,
9224    ) -> cusolverStatus_t {
9225        (culib().cusolverDnDpotrf_bufferSize)(handle, uplo, n, A, lda, Lwork)
9226    }
9227    pub unsafe fn cusolverDnDpotri(
9228        handle: cusolverDnHandle_t,
9229        uplo: cublasFillMode_t,
9230        n: ::core::ffi::c_int,
9231        A: *mut f64,
9232        lda: ::core::ffi::c_int,
9233        work: *mut f64,
9234        lwork: ::core::ffi::c_int,
9235        devInfo: *mut ::core::ffi::c_int,
9236    ) -> cusolverStatus_t {
9237        (culib().cusolverDnDpotri)(handle, uplo, n, A, lda, work, lwork, devInfo)
9238    }
9239    pub unsafe fn cusolverDnDpotri_bufferSize(
9240        handle: cusolverDnHandle_t,
9241        uplo: cublasFillMode_t,
9242        n: ::core::ffi::c_int,
9243        A: *mut f64,
9244        lda: ::core::ffi::c_int,
9245        lwork: *mut ::core::ffi::c_int,
9246    ) -> cusolverStatus_t {
9247        (culib().cusolverDnDpotri_bufferSize)(handle, uplo, n, A, lda, lwork)
9248    }
9249    pub unsafe fn cusolverDnDpotrs(
9250        handle: cusolverDnHandle_t,
9251        uplo: cublasFillMode_t,
9252        n: ::core::ffi::c_int,
9253        nrhs: ::core::ffi::c_int,
9254        A: *const f64,
9255        lda: ::core::ffi::c_int,
9256        B: *mut f64,
9257        ldb: ::core::ffi::c_int,
9258        devInfo: *mut ::core::ffi::c_int,
9259    ) -> cusolverStatus_t {
9260        (culib().cusolverDnDpotrs)(handle, uplo, n, nrhs, A, lda, B, ldb, devInfo)
9261    }
9262    pub unsafe fn cusolverDnDpotrsBatched(
9263        handle: cusolverDnHandle_t,
9264        uplo: cublasFillMode_t,
9265        n: ::core::ffi::c_int,
9266        nrhs: ::core::ffi::c_int,
9267        A: *mut *mut f64,
9268        lda: ::core::ffi::c_int,
9269        B: *mut *mut f64,
9270        ldb: ::core::ffi::c_int,
9271        d_info: *mut ::core::ffi::c_int,
9272        batchSize: ::core::ffi::c_int,
9273    ) -> cusolverStatus_t {
9274        (culib().cusolverDnDpotrsBatched)(handle, uplo, n, nrhs, A, lda, B, ldb, d_info, batchSize)
9275    }
9276    pub unsafe fn cusolverDnDsyevd(
9277        handle: cusolverDnHandle_t,
9278        jobz: cusolverEigMode_t,
9279        uplo: cublasFillMode_t,
9280        n: ::core::ffi::c_int,
9281        A: *mut f64,
9282        lda: ::core::ffi::c_int,
9283        W: *mut f64,
9284        work: *mut f64,
9285        lwork: ::core::ffi::c_int,
9286        info: *mut ::core::ffi::c_int,
9287    ) -> cusolverStatus_t {
9288        (culib().cusolverDnDsyevd)(handle, jobz, uplo, n, A, lda, W, work, lwork, info)
9289    }
9290    pub unsafe fn cusolverDnDsyevd_bufferSize(
9291        handle: cusolverDnHandle_t,
9292        jobz: cusolverEigMode_t,
9293        uplo: cublasFillMode_t,
9294        n: ::core::ffi::c_int,
9295        A: *const f64,
9296        lda: ::core::ffi::c_int,
9297        W: *const f64,
9298        lwork: *mut ::core::ffi::c_int,
9299    ) -> cusolverStatus_t {
9300        (culib().cusolverDnDsyevd_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork)
9301    }
9302    pub unsafe fn cusolverDnDsyevdx(
9303        handle: cusolverDnHandle_t,
9304        jobz: cusolverEigMode_t,
9305        range: cusolverEigRange_t,
9306        uplo: cublasFillMode_t,
9307        n: ::core::ffi::c_int,
9308        A: *mut f64,
9309        lda: ::core::ffi::c_int,
9310        vl: f64,
9311        vu: f64,
9312        il: ::core::ffi::c_int,
9313        iu: ::core::ffi::c_int,
9314        meig: *mut ::core::ffi::c_int,
9315        W: *mut f64,
9316        work: *mut f64,
9317        lwork: ::core::ffi::c_int,
9318        info: *mut ::core::ffi::c_int,
9319    ) -> cusolverStatus_t {
9320        (culib().cusolverDnDsyevdx)(
9321            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, work, lwork, info,
9322        )
9323    }
9324    pub unsafe fn cusolverDnDsyevdx_bufferSize(
9325        handle: cusolverDnHandle_t,
9326        jobz: cusolverEigMode_t,
9327        range: cusolverEigRange_t,
9328        uplo: cublasFillMode_t,
9329        n: ::core::ffi::c_int,
9330        A: *const f64,
9331        lda: ::core::ffi::c_int,
9332        vl: f64,
9333        vu: f64,
9334        il: ::core::ffi::c_int,
9335        iu: ::core::ffi::c_int,
9336        meig: *mut ::core::ffi::c_int,
9337        W: *const f64,
9338        lwork: *mut ::core::ffi::c_int,
9339    ) -> cusolverStatus_t {
9340        (culib().cusolverDnDsyevdx_bufferSize)(
9341            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, lwork,
9342        )
9343    }
9344    pub unsafe fn cusolverDnDsyevj(
9345        handle: cusolverDnHandle_t,
9346        jobz: cusolverEigMode_t,
9347        uplo: cublasFillMode_t,
9348        n: ::core::ffi::c_int,
9349        A: *mut f64,
9350        lda: ::core::ffi::c_int,
9351        W: *mut f64,
9352        work: *mut f64,
9353        lwork: ::core::ffi::c_int,
9354        info: *mut ::core::ffi::c_int,
9355        params: syevjInfo_t,
9356    ) -> cusolverStatus_t {
9357        (culib().cusolverDnDsyevj)(handle, jobz, uplo, n, A, lda, W, work, lwork, info, params)
9358    }
9359    pub unsafe fn cusolverDnDsyevjBatched(
9360        handle: cusolverDnHandle_t,
9361        jobz: cusolverEigMode_t,
9362        uplo: cublasFillMode_t,
9363        n: ::core::ffi::c_int,
9364        A: *mut f64,
9365        lda: ::core::ffi::c_int,
9366        W: *mut f64,
9367        work: *mut f64,
9368        lwork: ::core::ffi::c_int,
9369        info: *mut ::core::ffi::c_int,
9370        params: syevjInfo_t,
9371        batchSize: ::core::ffi::c_int,
9372    ) -> cusolverStatus_t {
9373        (culib().cusolverDnDsyevjBatched)(
9374            handle, jobz, uplo, n, A, lda, W, work, lwork, info, params, batchSize,
9375        )
9376    }
9377    pub unsafe fn cusolverDnDsyevjBatched_bufferSize(
9378        handle: cusolverDnHandle_t,
9379        jobz: cusolverEigMode_t,
9380        uplo: cublasFillMode_t,
9381        n: ::core::ffi::c_int,
9382        A: *const f64,
9383        lda: ::core::ffi::c_int,
9384        W: *const f64,
9385        lwork: *mut ::core::ffi::c_int,
9386        params: syevjInfo_t,
9387        batchSize: ::core::ffi::c_int,
9388    ) -> cusolverStatus_t {
9389        (culib().cusolverDnDsyevjBatched_bufferSize)(
9390            handle, jobz, uplo, n, A, lda, W, lwork, params, batchSize,
9391        )
9392    }
9393    pub unsafe fn cusolverDnDsyevj_bufferSize(
9394        handle: cusolverDnHandle_t,
9395        jobz: cusolverEigMode_t,
9396        uplo: cublasFillMode_t,
9397        n: ::core::ffi::c_int,
9398        A: *const f64,
9399        lda: ::core::ffi::c_int,
9400        W: *const f64,
9401        lwork: *mut ::core::ffi::c_int,
9402        params: syevjInfo_t,
9403    ) -> cusolverStatus_t {
9404        (culib().cusolverDnDsyevj_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork, params)
9405    }
9406    pub unsafe fn cusolverDnDsygvd(
9407        handle: cusolverDnHandle_t,
9408        itype: cusolverEigType_t,
9409        jobz: cusolverEigMode_t,
9410        uplo: cublasFillMode_t,
9411        n: ::core::ffi::c_int,
9412        A: *mut f64,
9413        lda: ::core::ffi::c_int,
9414        B: *mut f64,
9415        ldb: ::core::ffi::c_int,
9416        W: *mut f64,
9417        work: *mut f64,
9418        lwork: ::core::ffi::c_int,
9419        info: *mut ::core::ffi::c_int,
9420    ) -> cusolverStatus_t {
9421        (culib().cusolverDnDsygvd)(
9422            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info,
9423        )
9424    }
9425    pub unsafe fn cusolverDnDsygvd_bufferSize(
9426        handle: cusolverDnHandle_t,
9427        itype: cusolverEigType_t,
9428        jobz: cusolverEigMode_t,
9429        uplo: cublasFillMode_t,
9430        n: ::core::ffi::c_int,
9431        A: *const f64,
9432        lda: ::core::ffi::c_int,
9433        B: *const f64,
9434        ldb: ::core::ffi::c_int,
9435        W: *const f64,
9436        lwork: *mut ::core::ffi::c_int,
9437    ) -> cusolverStatus_t {
9438        (culib().cusolverDnDsygvd_bufferSize)(
9439            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork,
9440        )
9441    }
9442    pub unsafe fn cusolverDnDsygvdx(
9443        handle: cusolverDnHandle_t,
9444        itype: cusolverEigType_t,
9445        jobz: cusolverEigMode_t,
9446        range: cusolverEigRange_t,
9447        uplo: cublasFillMode_t,
9448        n: ::core::ffi::c_int,
9449        A: *mut f64,
9450        lda: ::core::ffi::c_int,
9451        B: *mut f64,
9452        ldb: ::core::ffi::c_int,
9453        vl: f64,
9454        vu: f64,
9455        il: ::core::ffi::c_int,
9456        iu: ::core::ffi::c_int,
9457        meig: *mut ::core::ffi::c_int,
9458        W: *mut f64,
9459        work: *mut f64,
9460        lwork: ::core::ffi::c_int,
9461        info: *mut ::core::ffi::c_int,
9462    ) -> cusolverStatus_t {
9463        (culib().cusolverDnDsygvdx)(
9464            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, work,
9465            lwork, info,
9466        )
9467    }
9468    pub unsafe fn cusolverDnDsygvdx_bufferSize(
9469        handle: cusolverDnHandle_t,
9470        itype: cusolverEigType_t,
9471        jobz: cusolverEigMode_t,
9472        range: cusolverEigRange_t,
9473        uplo: cublasFillMode_t,
9474        n: ::core::ffi::c_int,
9475        A: *const f64,
9476        lda: ::core::ffi::c_int,
9477        B: *const f64,
9478        ldb: ::core::ffi::c_int,
9479        vl: f64,
9480        vu: f64,
9481        il: ::core::ffi::c_int,
9482        iu: ::core::ffi::c_int,
9483        meig: *mut ::core::ffi::c_int,
9484        W: *const f64,
9485        lwork: *mut ::core::ffi::c_int,
9486    ) -> cusolverStatus_t {
9487        (culib().cusolverDnDsygvdx_bufferSize)(
9488            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, lwork,
9489        )
9490    }
9491    pub unsafe fn cusolverDnDsygvj(
9492        handle: cusolverDnHandle_t,
9493        itype: cusolverEigType_t,
9494        jobz: cusolverEigMode_t,
9495        uplo: cublasFillMode_t,
9496        n: ::core::ffi::c_int,
9497        A: *mut f64,
9498        lda: ::core::ffi::c_int,
9499        B: *mut f64,
9500        ldb: ::core::ffi::c_int,
9501        W: *mut f64,
9502        work: *mut f64,
9503        lwork: ::core::ffi::c_int,
9504        info: *mut ::core::ffi::c_int,
9505        params: syevjInfo_t,
9506    ) -> cusolverStatus_t {
9507        (culib().cusolverDnDsygvj)(
9508            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info, params,
9509        )
9510    }
9511    pub unsafe fn cusolverDnDsygvj_bufferSize(
9512        handle: cusolverDnHandle_t,
9513        itype: cusolverEigType_t,
9514        jobz: cusolverEigMode_t,
9515        uplo: cublasFillMode_t,
9516        n: ::core::ffi::c_int,
9517        A: *const f64,
9518        lda: ::core::ffi::c_int,
9519        B: *const f64,
9520        ldb: ::core::ffi::c_int,
9521        W: *const f64,
9522        lwork: *mut ::core::ffi::c_int,
9523        params: syevjInfo_t,
9524    ) -> cusolverStatus_t {
9525        (culib().cusolverDnDsygvj_bufferSize)(
9526            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork, params,
9527        )
9528    }
9529    pub unsafe fn cusolverDnDsytrd(
9530        handle: cusolverDnHandle_t,
9531        uplo: cublasFillMode_t,
9532        n: ::core::ffi::c_int,
9533        A: *mut f64,
9534        lda: ::core::ffi::c_int,
9535        d: *mut f64,
9536        e: *mut f64,
9537        tau: *mut f64,
9538        work: *mut f64,
9539        lwork: ::core::ffi::c_int,
9540        info: *mut ::core::ffi::c_int,
9541    ) -> cusolverStatus_t {
9542        (culib().cusolverDnDsytrd)(handle, uplo, n, A, lda, d, e, tau, work, lwork, info)
9543    }
9544    pub unsafe fn cusolverDnDsytrd_bufferSize(
9545        handle: cusolverDnHandle_t,
9546        uplo: cublasFillMode_t,
9547        n: ::core::ffi::c_int,
9548        A: *const f64,
9549        lda: ::core::ffi::c_int,
9550        d: *const f64,
9551        e: *const f64,
9552        tau: *const f64,
9553        lwork: *mut ::core::ffi::c_int,
9554    ) -> cusolverStatus_t {
9555        (culib().cusolverDnDsytrd_bufferSize)(handle, uplo, n, A, lda, d, e, tau, lwork)
9556    }
9557    pub unsafe fn cusolverDnDsytrf(
9558        handle: cusolverDnHandle_t,
9559        uplo: cublasFillMode_t,
9560        n: ::core::ffi::c_int,
9561        A: *mut f64,
9562        lda: ::core::ffi::c_int,
9563        ipiv: *mut ::core::ffi::c_int,
9564        work: *mut f64,
9565        lwork: ::core::ffi::c_int,
9566        info: *mut ::core::ffi::c_int,
9567    ) -> cusolverStatus_t {
9568        (culib().cusolverDnDsytrf)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
9569    }
9570    pub unsafe fn cusolverDnDsytrf_bufferSize(
9571        handle: cusolverDnHandle_t,
9572        n: ::core::ffi::c_int,
9573        A: *mut f64,
9574        lda: ::core::ffi::c_int,
9575        lwork: *mut ::core::ffi::c_int,
9576    ) -> cusolverStatus_t {
9577        (culib().cusolverDnDsytrf_bufferSize)(handle, n, A, lda, lwork)
9578    }
9579    pub unsafe fn cusolverDnDsytri(
9580        handle: cusolverDnHandle_t,
9581        uplo: cublasFillMode_t,
9582        n: ::core::ffi::c_int,
9583        A: *mut f64,
9584        lda: ::core::ffi::c_int,
9585        ipiv: *const ::core::ffi::c_int,
9586        work: *mut f64,
9587        lwork: ::core::ffi::c_int,
9588        info: *mut ::core::ffi::c_int,
9589    ) -> cusolverStatus_t {
9590        (culib().cusolverDnDsytri)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
9591    }
9592    pub unsafe fn cusolverDnDsytri_bufferSize(
9593        handle: cusolverDnHandle_t,
9594        uplo: cublasFillMode_t,
9595        n: ::core::ffi::c_int,
9596        A: *mut f64,
9597        lda: ::core::ffi::c_int,
9598        ipiv: *const ::core::ffi::c_int,
9599        lwork: *mut ::core::ffi::c_int,
9600    ) -> cusolverStatus_t {
9601        (culib().cusolverDnDsytri_bufferSize)(handle, uplo, n, A, lda, ipiv, lwork)
9602    }
9603    #[cfg(any(
9604        feature = "cuda-11040",
9605        feature = "cuda-11050",
9606        feature = "cuda-11060",
9607        feature = "cuda-11070",
9608        feature = "cuda-11080",
9609        feature = "cuda-12000",
9610        feature = "cuda-12010",
9611        feature = "cuda-12020",
9612        feature = "cuda-12030",
9613        feature = "cuda-12040",
9614        feature = "cuda-12050",
9615        feature = "cuda-12060",
9616        feature = "cuda-12080",
9617        feature = "cuda-12090"
9618    ))]
9619    pub unsafe fn cusolverDnGeqrf(
9620        handle: cusolverDnHandle_t,
9621        params: cusolverDnParams_t,
9622        m: i64,
9623        n: i64,
9624        dataTypeA: cudaDataType,
9625        A: *mut ::core::ffi::c_void,
9626        lda: i64,
9627        dataTypeTau: cudaDataType,
9628        tau: *mut ::core::ffi::c_void,
9629        computeType: cudaDataType,
9630        pBuffer: *mut ::core::ffi::c_void,
9631        workspaceInBytes: usize,
9632        info: *mut ::core::ffi::c_int,
9633    ) -> cusolverStatus_t {
9634        (culib().cusolverDnGeqrf)(
9635            handle,
9636            params,
9637            m,
9638            n,
9639            dataTypeA,
9640            A,
9641            lda,
9642            dataTypeTau,
9643            tau,
9644            computeType,
9645            pBuffer,
9646            workspaceInBytes,
9647            info,
9648        )
9649    }
9650    #[cfg(any(
9651        feature = "cuda-11040",
9652        feature = "cuda-11050",
9653        feature = "cuda-11060",
9654        feature = "cuda-11070",
9655        feature = "cuda-11080",
9656        feature = "cuda-12000",
9657        feature = "cuda-12010",
9658        feature = "cuda-12020",
9659        feature = "cuda-12030",
9660        feature = "cuda-12040",
9661        feature = "cuda-12050",
9662        feature = "cuda-12060",
9663        feature = "cuda-12080",
9664        feature = "cuda-12090"
9665    ))]
9666    pub unsafe fn cusolverDnGeqrf_bufferSize(
9667        handle: cusolverDnHandle_t,
9668        params: cusolverDnParams_t,
9669        m: i64,
9670        n: i64,
9671        dataTypeA: cudaDataType,
9672        A: *const ::core::ffi::c_void,
9673        lda: i64,
9674        dataTypeTau: cudaDataType,
9675        tau: *const ::core::ffi::c_void,
9676        computeType: cudaDataType,
9677        workspaceInBytes: *mut usize,
9678    ) -> cusolverStatus_t {
9679        (culib().cusolverDnGeqrf_bufferSize)(
9680            handle,
9681            params,
9682            m,
9683            n,
9684            dataTypeA,
9685            A,
9686            lda,
9687            dataTypeTau,
9688            tau,
9689            computeType,
9690            workspaceInBytes,
9691        )
9692    }
9693    #[cfg(any(
9694        feature = "cuda-11040",
9695        feature = "cuda-11050",
9696        feature = "cuda-11060",
9697        feature = "cuda-11070",
9698        feature = "cuda-11080",
9699        feature = "cuda-12000",
9700        feature = "cuda-12010",
9701        feature = "cuda-12020",
9702        feature = "cuda-12030",
9703        feature = "cuda-12040",
9704        feature = "cuda-12050",
9705        feature = "cuda-12060",
9706        feature = "cuda-12080",
9707        feature = "cuda-12090"
9708    ))]
9709    pub unsafe fn cusolverDnGesvd(
9710        handle: cusolverDnHandle_t,
9711        params: cusolverDnParams_t,
9712        jobu: ::core::ffi::c_schar,
9713        jobvt: ::core::ffi::c_schar,
9714        m: i64,
9715        n: i64,
9716        dataTypeA: cudaDataType,
9717        A: *mut ::core::ffi::c_void,
9718        lda: i64,
9719        dataTypeS: cudaDataType,
9720        S: *mut ::core::ffi::c_void,
9721        dataTypeU: cudaDataType,
9722        U: *mut ::core::ffi::c_void,
9723        ldu: i64,
9724        dataTypeVT: cudaDataType,
9725        VT: *mut ::core::ffi::c_void,
9726        ldvt: i64,
9727        computeType: cudaDataType,
9728        pBuffer: *mut ::core::ffi::c_void,
9729        workspaceInBytes: usize,
9730        info: *mut ::core::ffi::c_int,
9731    ) -> cusolverStatus_t {
9732        (culib().cusolverDnGesvd)(
9733            handle,
9734            params,
9735            jobu,
9736            jobvt,
9737            m,
9738            n,
9739            dataTypeA,
9740            A,
9741            lda,
9742            dataTypeS,
9743            S,
9744            dataTypeU,
9745            U,
9746            ldu,
9747            dataTypeVT,
9748            VT,
9749            ldvt,
9750            computeType,
9751            pBuffer,
9752            workspaceInBytes,
9753            info,
9754        )
9755    }
9756    #[cfg(any(
9757        feature = "cuda-11040",
9758        feature = "cuda-11050",
9759        feature = "cuda-11060",
9760        feature = "cuda-11070",
9761        feature = "cuda-11080",
9762        feature = "cuda-12000",
9763        feature = "cuda-12010",
9764        feature = "cuda-12020",
9765        feature = "cuda-12030",
9766        feature = "cuda-12040",
9767        feature = "cuda-12050",
9768        feature = "cuda-12060",
9769        feature = "cuda-12080",
9770        feature = "cuda-12090"
9771    ))]
9772    pub unsafe fn cusolverDnGesvd_bufferSize(
9773        handle: cusolverDnHandle_t,
9774        params: cusolverDnParams_t,
9775        jobu: ::core::ffi::c_schar,
9776        jobvt: ::core::ffi::c_schar,
9777        m: i64,
9778        n: i64,
9779        dataTypeA: cudaDataType,
9780        A: *const ::core::ffi::c_void,
9781        lda: i64,
9782        dataTypeS: cudaDataType,
9783        S: *const ::core::ffi::c_void,
9784        dataTypeU: cudaDataType,
9785        U: *const ::core::ffi::c_void,
9786        ldu: i64,
9787        dataTypeVT: cudaDataType,
9788        VT: *const ::core::ffi::c_void,
9789        ldvt: i64,
9790        computeType: cudaDataType,
9791        workspaceInBytes: *mut usize,
9792    ) -> cusolverStatus_t {
9793        (culib().cusolverDnGesvd_bufferSize)(
9794            handle,
9795            params,
9796            jobu,
9797            jobvt,
9798            m,
9799            n,
9800            dataTypeA,
9801            A,
9802            lda,
9803            dataTypeS,
9804            S,
9805            dataTypeU,
9806            U,
9807            ldu,
9808            dataTypeVT,
9809            VT,
9810            ldvt,
9811            computeType,
9812            workspaceInBytes,
9813        )
9814    }
9815    #[cfg(any(
9816        feature = "cuda-12020",
9817        feature = "cuda-12030",
9818        feature = "cuda-12040",
9819        feature = "cuda-12050",
9820        feature = "cuda-12060",
9821        feature = "cuda-12080",
9822        feature = "cuda-12090",
9823        feature = "cuda-13000",
9824        feature = "cuda-13010"
9825    ))]
9826    pub unsafe fn cusolverDnGetDeterministicMode(
9827        handle: cusolverDnHandle_t,
9828        mode: *mut cusolverDeterministicMode_t,
9829    ) -> cusolverStatus_t {
9830        (culib().cusolverDnGetDeterministicMode)(handle, mode)
9831    }
9832    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
9833    pub unsafe fn cusolverDnGetEmulationStrategy(
9834        handle: cusolverDnHandle_t,
9835        strategy: *mut cudaEmulationStrategy_t,
9836    ) -> cusolverStatus_t {
9837        (culib().cusolverDnGetEmulationStrategy)(handle, strategy)
9838    }
9839    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
9840    pub unsafe fn cusolverDnGetMathMode(
9841        handle: cusolverDnHandle_t,
9842        mode: *mut cusolverMathMode_t,
9843    ) -> cusolverStatus_t {
9844        (culib().cusolverDnGetMathMode)(handle, mode)
9845    }
9846    pub unsafe fn cusolverDnGetStream(
9847        handle: cusolverDnHandle_t,
9848        streamId: *mut cudaStream_t,
9849    ) -> cusolverStatus_t {
9850        (culib().cusolverDnGetStream)(handle, streamId)
9851    }
9852    #[cfg(any(
9853        feature = "cuda-11040",
9854        feature = "cuda-11050",
9855        feature = "cuda-11060",
9856        feature = "cuda-11070",
9857        feature = "cuda-11080",
9858        feature = "cuda-12000",
9859        feature = "cuda-12010",
9860        feature = "cuda-12020",
9861        feature = "cuda-12030",
9862        feature = "cuda-12040",
9863        feature = "cuda-12050",
9864        feature = "cuda-12060",
9865        feature = "cuda-12080",
9866        feature = "cuda-12090"
9867    ))]
9868    pub unsafe fn cusolverDnGetrf(
9869        handle: cusolverDnHandle_t,
9870        params: cusolverDnParams_t,
9871        m: i64,
9872        n: i64,
9873        dataTypeA: cudaDataType,
9874        A: *mut ::core::ffi::c_void,
9875        lda: i64,
9876        ipiv: *mut i64,
9877        computeType: cudaDataType,
9878        pBuffer: *mut ::core::ffi::c_void,
9879        workspaceInBytes: usize,
9880        info: *mut ::core::ffi::c_int,
9881    ) -> cusolverStatus_t {
9882        (culib().cusolverDnGetrf)(
9883            handle,
9884            params,
9885            m,
9886            n,
9887            dataTypeA,
9888            A,
9889            lda,
9890            ipiv,
9891            computeType,
9892            pBuffer,
9893            workspaceInBytes,
9894            info,
9895        )
9896    }
9897    #[cfg(any(
9898        feature = "cuda-11040",
9899        feature = "cuda-11050",
9900        feature = "cuda-11060",
9901        feature = "cuda-11070",
9902        feature = "cuda-11080",
9903        feature = "cuda-12000",
9904        feature = "cuda-12010",
9905        feature = "cuda-12020",
9906        feature = "cuda-12030",
9907        feature = "cuda-12040",
9908        feature = "cuda-12050",
9909        feature = "cuda-12060",
9910        feature = "cuda-12080",
9911        feature = "cuda-12090"
9912    ))]
9913    pub unsafe fn cusolverDnGetrf_bufferSize(
9914        handle: cusolverDnHandle_t,
9915        params: cusolverDnParams_t,
9916        m: i64,
9917        n: i64,
9918        dataTypeA: cudaDataType,
9919        A: *const ::core::ffi::c_void,
9920        lda: i64,
9921        computeType: cudaDataType,
9922        workspaceInBytes: *mut usize,
9923    ) -> cusolverStatus_t {
9924        (culib().cusolverDnGetrf_bufferSize)(
9925            handle,
9926            params,
9927            m,
9928            n,
9929            dataTypeA,
9930            A,
9931            lda,
9932            computeType,
9933            workspaceInBytes,
9934        )
9935    }
9936    #[cfg(any(
9937        feature = "cuda-11040",
9938        feature = "cuda-11050",
9939        feature = "cuda-11060",
9940        feature = "cuda-11070",
9941        feature = "cuda-11080",
9942        feature = "cuda-12000",
9943        feature = "cuda-12010",
9944        feature = "cuda-12020",
9945        feature = "cuda-12030",
9946        feature = "cuda-12040",
9947        feature = "cuda-12050",
9948        feature = "cuda-12060",
9949        feature = "cuda-12080",
9950        feature = "cuda-12090"
9951    ))]
9952    pub unsafe fn cusolverDnGetrs(
9953        handle: cusolverDnHandle_t,
9954        params: cusolverDnParams_t,
9955        trans: cublasOperation_t,
9956        n: i64,
9957        nrhs: i64,
9958        dataTypeA: cudaDataType,
9959        A: *const ::core::ffi::c_void,
9960        lda: i64,
9961        ipiv: *const i64,
9962        dataTypeB: cudaDataType,
9963        B: *mut ::core::ffi::c_void,
9964        ldb: i64,
9965        info: *mut ::core::ffi::c_int,
9966    ) -> cusolverStatus_t {
9967        (culib().cusolverDnGetrs)(
9968            handle, params, trans, n, nrhs, dataTypeA, A, lda, ipiv, dataTypeB, B, ldb, info,
9969        )
9970    }
9971    pub unsafe fn cusolverDnIRSInfosCreate(
9972        infos_ptr: *mut cusolverDnIRSInfos_t,
9973    ) -> cusolverStatus_t {
9974        (culib().cusolverDnIRSInfosCreate)(infos_ptr)
9975    }
9976    pub unsafe fn cusolverDnIRSInfosDestroy(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t {
9977        (culib().cusolverDnIRSInfosDestroy)(infos)
9978    }
9979    pub unsafe fn cusolverDnIRSInfosGetMaxIters(
9980        infos: cusolverDnIRSInfos_t,
9981        maxiters: *mut cusolver_int_t,
9982    ) -> cusolverStatus_t {
9983        (culib().cusolverDnIRSInfosGetMaxIters)(infos, maxiters)
9984    }
9985    pub unsafe fn cusolverDnIRSInfosGetNiters(
9986        infos: cusolverDnIRSInfos_t,
9987        niters: *mut cusolver_int_t,
9988    ) -> cusolverStatus_t {
9989        (culib().cusolverDnIRSInfosGetNiters)(infos, niters)
9990    }
9991    pub unsafe fn cusolverDnIRSInfosGetOuterNiters(
9992        infos: cusolverDnIRSInfos_t,
9993        outer_niters: *mut cusolver_int_t,
9994    ) -> cusolverStatus_t {
9995        (culib().cusolverDnIRSInfosGetOuterNiters)(infos, outer_niters)
9996    }
9997    pub unsafe fn cusolverDnIRSInfosGetResidualHistory(
9998        infos: cusolverDnIRSInfos_t,
9999        residual_history: *mut *mut ::core::ffi::c_void,
10000    ) -> cusolverStatus_t {
10001        (culib().cusolverDnIRSInfosGetResidualHistory)(infos, residual_history)
10002    }
10003    pub unsafe fn cusolverDnIRSInfosRequestResidual(
10004        infos: cusolverDnIRSInfos_t,
10005    ) -> cusolverStatus_t {
10006        (culib().cusolverDnIRSInfosRequestResidual)(infos)
10007    }
10008    pub unsafe fn cusolverDnIRSParamsCreate(
10009        params_ptr: *mut cusolverDnIRSParams_t,
10010    ) -> cusolverStatus_t {
10011        (culib().cusolverDnIRSParamsCreate)(params_ptr)
10012    }
10013    pub unsafe fn cusolverDnIRSParamsDestroy(params: cusolverDnIRSParams_t) -> cusolverStatus_t {
10014        (culib().cusolverDnIRSParamsDestroy)(params)
10015    }
10016    pub unsafe fn cusolverDnIRSParamsDisableFallback(
10017        params: cusolverDnIRSParams_t,
10018    ) -> cusolverStatus_t {
10019        (culib().cusolverDnIRSParamsDisableFallback)(params)
10020    }
10021    pub unsafe fn cusolverDnIRSParamsEnableFallback(
10022        params: cusolverDnIRSParams_t,
10023    ) -> cusolverStatus_t {
10024        (culib().cusolverDnIRSParamsEnableFallback)(params)
10025    }
10026    pub unsafe fn cusolverDnIRSParamsGetMaxIters(
10027        params: cusolverDnIRSParams_t,
10028        maxiters: *mut cusolver_int_t,
10029    ) -> cusolverStatus_t {
10030        (culib().cusolverDnIRSParamsGetMaxIters)(params, maxiters)
10031    }
10032    pub unsafe fn cusolverDnIRSParamsSetMaxIters(
10033        params: cusolverDnIRSParams_t,
10034        maxiters: cusolver_int_t,
10035    ) -> cusolverStatus_t {
10036        (culib().cusolverDnIRSParamsSetMaxIters)(params, maxiters)
10037    }
10038    pub unsafe fn cusolverDnIRSParamsSetMaxItersInner(
10039        params: cusolverDnIRSParams_t,
10040        maxiters_inner: cusolver_int_t,
10041    ) -> cusolverStatus_t {
10042        (culib().cusolverDnIRSParamsSetMaxItersInner)(params, maxiters_inner)
10043    }
10044    pub unsafe fn cusolverDnIRSParamsSetRefinementSolver(
10045        params: cusolverDnIRSParams_t,
10046        refinement_solver: cusolverIRSRefinement_t,
10047    ) -> cusolverStatus_t {
10048        (culib().cusolverDnIRSParamsSetRefinementSolver)(params, refinement_solver)
10049    }
10050    pub unsafe fn cusolverDnIRSParamsSetSolverLowestPrecision(
10051        params: cusolverDnIRSParams_t,
10052        solver_lowest_precision: cusolverPrecType_t,
10053    ) -> cusolverStatus_t {
10054        (culib().cusolverDnIRSParamsSetSolverLowestPrecision)(params, solver_lowest_precision)
10055    }
10056    pub unsafe fn cusolverDnIRSParamsSetSolverMainPrecision(
10057        params: cusolverDnIRSParams_t,
10058        solver_main_precision: cusolverPrecType_t,
10059    ) -> cusolverStatus_t {
10060        (culib().cusolverDnIRSParamsSetSolverMainPrecision)(params, solver_main_precision)
10061    }
10062    pub unsafe fn cusolverDnIRSParamsSetSolverPrecisions(
10063        params: cusolverDnIRSParams_t,
10064        solver_main_precision: cusolverPrecType_t,
10065        solver_lowest_precision: cusolverPrecType_t,
10066    ) -> cusolverStatus_t {
10067        (culib().cusolverDnIRSParamsSetSolverPrecisions)(
10068            params,
10069            solver_main_precision,
10070            solver_lowest_precision,
10071        )
10072    }
10073    pub unsafe fn cusolverDnIRSParamsSetTol(
10074        params: cusolverDnIRSParams_t,
10075        val: f64,
10076    ) -> cusolverStatus_t {
10077        (culib().cusolverDnIRSParamsSetTol)(params, val)
10078    }
10079    pub unsafe fn cusolverDnIRSParamsSetTolInner(
10080        params: cusolverDnIRSParams_t,
10081        val: f64,
10082    ) -> cusolverStatus_t {
10083        (culib().cusolverDnIRSParamsSetTolInner)(params, val)
10084    }
10085    pub unsafe fn cusolverDnIRSXgels(
10086        handle: cusolverDnHandle_t,
10087        gels_irs_params: cusolverDnIRSParams_t,
10088        gels_irs_infos: cusolverDnIRSInfos_t,
10089        m: cusolver_int_t,
10090        n: cusolver_int_t,
10091        nrhs: cusolver_int_t,
10092        dA: *mut ::core::ffi::c_void,
10093        ldda: cusolver_int_t,
10094        dB: *mut ::core::ffi::c_void,
10095        lddb: cusolver_int_t,
10096        dX: *mut ::core::ffi::c_void,
10097        lddx: cusolver_int_t,
10098        dWorkspace: *mut ::core::ffi::c_void,
10099        lwork_bytes: usize,
10100        niters: *mut cusolver_int_t,
10101        d_info: *mut cusolver_int_t,
10102    ) -> cusolverStatus_t {
10103        (culib().cusolverDnIRSXgels)(
10104            handle,
10105            gels_irs_params,
10106            gels_irs_infos,
10107            m,
10108            n,
10109            nrhs,
10110            dA,
10111            ldda,
10112            dB,
10113            lddb,
10114            dX,
10115            lddx,
10116            dWorkspace,
10117            lwork_bytes,
10118            niters,
10119            d_info,
10120        )
10121    }
10122    pub unsafe fn cusolverDnIRSXgels_bufferSize(
10123        handle: cusolverDnHandle_t,
10124        params: cusolverDnIRSParams_t,
10125        m: cusolver_int_t,
10126        n: cusolver_int_t,
10127        nrhs: cusolver_int_t,
10128        lwork_bytes: *mut usize,
10129    ) -> cusolverStatus_t {
10130        (culib().cusolverDnIRSXgels_bufferSize)(handle, params, m, n, nrhs, lwork_bytes)
10131    }
10132    pub unsafe fn cusolverDnIRSXgesv(
10133        handle: cusolverDnHandle_t,
10134        gesv_irs_params: cusolverDnIRSParams_t,
10135        gesv_irs_infos: cusolverDnIRSInfos_t,
10136        n: cusolver_int_t,
10137        nrhs: cusolver_int_t,
10138        dA: *mut ::core::ffi::c_void,
10139        ldda: cusolver_int_t,
10140        dB: *mut ::core::ffi::c_void,
10141        lddb: cusolver_int_t,
10142        dX: *mut ::core::ffi::c_void,
10143        lddx: cusolver_int_t,
10144        dWorkspace: *mut ::core::ffi::c_void,
10145        lwork_bytes: usize,
10146        niters: *mut cusolver_int_t,
10147        d_info: *mut cusolver_int_t,
10148    ) -> cusolverStatus_t {
10149        (culib().cusolverDnIRSXgesv)(
10150            handle,
10151            gesv_irs_params,
10152            gesv_irs_infos,
10153            n,
10154            nrhs,
10155            dA,
10156            ldda,
10157            dB,
10158            lddb,
10159            dX,
10160            lddx,
10161            dWorkspace,
10162            lwork_bytes,
10163            niters,
10164            d_info,
10165        )
10166    }
10167    pub unsafe fn cusolverDnIRSXgesv_bufferSize(
10168        handle: cusolverDnHandle_t,
10169        params: cusolverDnIRSParams_t,
10170        n: cusolver_int_t,
10171        nrhs: cusolver_int_t,
10172        lwork_bytes: *mut usize,
10173    ) -> cusolverStatus_t {
10174        (culib().cusolverDnIRSXgesv_bufferSize)(handle, params, n, nrhs, lwork_bytes)
10175    }
10176    #[cfg(any(
10177        feature = "cuda-11040",
10178        feature = "cuda-11050",
10179        feature = "cuda-11060",
10180        feature = "cuda-11070",
10181        feature = "cuda-11080",
10182        feature = "cuda-12000",
10183        feature = "cuda-12010",
10184        feature = "cuda-12020",
10185        feature = "cuda-12030",
10186        feature = "cuda-12040",
10187        feature = "cuda-12050",
10188        feature = "cuda-12060",
10189        feature = "cuda-12080",
10190        feature = "cuda-12090"
10191    ))]
10192    pub unsafe fn cusolverDnPotrf(
10193        handle: cusolverDnHandle_t,
10194        params: cusolverDnParams_t,
10195        uplo: cublasFillMode_t,
10196        n: i64,
10197        dataTypeA: cudaDataType,
10198        A: *mut ::core::ffi::c_void,
10199        lda: i64,
10200        computeType: cudaDataType,
10201        pBuffer: *mut ::core::ffi::c_void,
10202        workspaceInBytes: usize,
10203        info: *mut ::core::ffi::c_int,
10204    ) -> cusolverStatus_t {
10205        (culib().cusolverDnPotrf)(
10206            handle,
10207            params,
10208            uplo,
10209            n,
10210            dataTypeA,
10211            A,
10212            lda,
10213            computeType,
10214            pBuffer,
10215            workspaceInBytes,
10216            info,
10217        )
10218    }
10219    #[cfg(any(
10220        feature = "cuda-11040",
10221        feature = "cuda-11050",
10222        feature = "cuda-11060",
10223        feature = "cuda-11070",
10224        feature = "cuda-11080",
10225        feature = "cuda-12000",
10226        feature = "cuda-12010",
10227        feature = "cuda-12020",
10228        feature = "cuda-12030",
10229        feature = "cuda-12040",
10230        feature = "cuda-12050",
10231        feature = "cuda-12060",
10232        feature = "cuda-12080",
10233        feature = "cuda-12090"
10234    ))]
10235    pub unsafe fn cusolverDnPotrf_bufferSize(
10236        handle: cusolverDnHandle_t,
10237        params: cusolverDnParams_t,
10238        uplo: cublasFillMode_t,
10239        n: i64,
10240        dataTypeA: cudaDataType,
10241        A: *const ::core::ffi::c_void,
10242        lda: i64,
10243        computeType: cudaDataType,
10244        workspaceInBytes: *mut usize,
10245    ) -> cusolverStatus_t {
10246        (culib().cusolverDnPotrf_bufferSize)(
10247            handle,
10248            params,
10249            uplo,
10250            n,
10251            dataTypeA,
10252            A,
10253            lda,
10254            computeType,
10255            workspaceInBytes,
10256        )
10257    }
10258    #[cfg(any(
10259        feature = "cuda-11040",
10260        feature = "cuda-11050",
10261        feature = "cuda-11060",
10262        feature = "cuda-11070",
10263        feature = "cuda-11080",
10264        feature = "cuda-12000",
10265        feature = "cuda-12010",
10266        feature = "cuda-12020",
10267        feature = "cuda-12030",
10268        feature = "cuda-12040",
10269        feature = "cuda-12050",
10270        feature = "cuda-12060",
10271        feature = "cuda-12080",
10272        feature = "cuda-12090"
10273    ))]
10274    pub unsafe fn cusolverDnPotrs(
10275        handle: cusolverDnHandle_t,
10276        params: cusolverDnParams_t,
10277        uplo: cublasFillMode_t,
10278        n: i64,
10279        nrhs: i64,
10280        dataTypeA: cudaDataType,
10281        A: *const ::core::ffi::c_void,
10282        lda: i64,
10283        dataTypeB: cudaDataType,
10284        B: *mut ::core::ffi::c_void,
10285        ldb: i64,
10286        info: *mut ::core::ffi::c_int,
10287    ) -> cusolverStatus_t {
10288        (culib().cusolverDnPotrs)(
10289            handle, params, uplo, n, nrhs, dataTypeA, A, lda, dataTypeB, B, ldb, info,
10290        )
10291    }
10292    pub unsafe fn cusolverDnSBgels(
10293        handle: cusolverDnHandle_t,
10294        m: cusolver_int_t,
10295        n: cusolver_int_t,
10296        nrhs: cusolver_int_t,
10297        dA: *mut f32,
10298        ldda: cusolver_int_t,
10299        dB: *mut f32,
10300        lddb: cusolver_int_t,
10301        dX: *mut f32,
10302        lddx: cusolver_int_t,
10303        dWorkspace: *mut ::core::ffi::c_void,
10304        lwork_bytes: usize,
10305        iter: *mut cusolver_int_t,
10306        d_info: *mut cusolver_int_t,
10307    ) -> cusolverStatus_t {
10308        (culib().cusolverDnSBgels)(
10309            handle,
10310            m,
10311            n,
10312            nrhs,
10313            dA,
10314            ldda,
10315            dB,
10316            lddb,
10317            dX,
10318            lddx,
10319            dWorkspace,
10320            lwork_bytes,
10321            iter,
10322            d_info,
10323        )
10324    }
10325    pub unsafe fn cusolverDnSBgels_bufferSize(
10326        handle: cusolverDnHandle_t,
10327        m: cusolver_int_t,
10328        n: cusolver_int_t,
10329        nrhs: cusolver_int_t,
10330        dA: *mut f32,
10331        ldda: cusolver_int_t,
10332        dB: *mut f32,
10333        lddb: cusolver_int_t,
10334        dX: *mut f32,
10335        lddx: cusolver_int_t,
10336        dWorkspace: *mut ::core::ffi::c_void,
10337        lwork_bytes: *mut usize,
10338    ) -> cusolverStatus_t {
10339        (culib().cusolverDnSBgels_bufferSize)(
10340            handle,
10341            m,
10342            n,
10343            nrhs,
10344            dA,
10345            ldda,
10346            dB,
10347            lddb,
10348            dX,
10349            lddx,
10350            dWorkspace,
10351            lwork_bytes,
10352        )
10353    }
10354    pub unsafe fn cusolverDnSBgesv(
10355        handle: cusolverDnHandle_t,
10356        n: cusolver_int_t,
10357        nrhs: cusolver_int_t,
10358        dA: *mut f32,
10359        ldda: cusolver_int_t,
10360        dipiv: *mut cusolver_int_t,
10361        dB: *mut f32,
10362        lddb: cusolver_int_t,
10363        dX: *mut f32,
10364        lddx: cusolver_int_t,
10365        dWorkspace: *mut ::core::ffi::c_void,
10366        lwork_bytes: usize,
10367        iter: *mut cusolver_int_t,
10368        d_info: *mut cusolver_int_t,
10369    ) -> cusolverStatus_t {
10370        (culib().cusolverDnSBgesv)(
10371            handle,
10372            n,
10373            nrhs,
10374            dA,
10375            ldda,
10376            dipiv,
10377            dB,
10378            lddb,
10379            dX,
10380            lddx,
10381            dWorkspace,
10382            lwork_bytes,
10383            iter,
10384            d_info,
10385        )
10386    }
10387    pub unsafe fn cusolverDnSBgesv_bufferSize(
10388        handle: cusolverDnHandle_t,
10389        n: cusolver_int_t,
10390        nrhs: cusolver_int_t,
10391        dA: *mut f32,
10392        ldda: cusolver_int_t,
10393        dipiv: *mut cusolver_int_t,
10394        dB: *mut f32,
10395        lddb: cusolver_int_t,
10396        dX: *mut f32,
10397        lddx: cusolver_int_t,
10398        dWorkspace: *mut ::core::ffi::c_void,
10399        lwork_bytes: *mut usize,
10400    ) -> cusolverStatus_t {
10401        (culib().cusolverDnSBgesv_bufferSize)(
10402            handle,
10403            n,
10404            nrhs,
10405            dA,
10406            ldda,
10407            dipiv,
10408            dB,
10409            lddb,
10410            dX,
10411            lddx,
10412            dWorkspace,
10413            lwork_bytes,
10414        )
10415    }
10416    pub unsafe fn cusolverDnSHgels(
10417        handle: cusolverDnHandle_t,
10418        m: cusolver_int_t,
10419        n: cusolver_int_t,
10420        nrhs: cusolver_int_t,
10421        dA: *mut f32,
10422        ldda: cusolver_int_t,
10423        dB: *mut f32,
10424        lddb: cusolver_int_t,
10425        dX: *mut f32,
10426        lddx: cusolver_int_t,
10427        dWorkspace: *mut ::core::ffi::c_void,
10428        lwork_bytes: usize,
10429        iter: *mut cusolver_int_t,
10430        d_info: *mut cusolver_int_t,
10431    ) -> cusolverStatus_t {
10432        (culib().cusolverDnSHgels)(
10433            handle,
10434            m,
10435            n,
10436            nrhs,
10437            dA,
10438            ldda,
10439            dB,
10440            lddb,
10441            dX,
10442            lddx,
10443            dWorkspace,
10444            lwork_bytes,
10445            iter,
10446            d_info,
10447        )
10448    }
10449    pub unsafe fn cusolverDnSHgels_bufferSize(
10450        handle: cusolverDnHandle_t,
10451        m: cusolver_int_t,
10452        n: cusolver_int_t,
10453        nrhs: cusolver_int_t,
10454        dA: *mut f32,
10455        ldda: cusolver_int_t,
10456        dB: *mut f32,
10457        lddb: cusolver_int_t,
10458        dX: *mut f32,
10459        lddx: cusolver_int_t,
10460        dWorkspace: *mut ::core::ffi::c_void,
10461        lwork_bytes: *mut usize,
10462    ) -> cusolverStatus_t {
10463        (culib().cusolverDnSHgels_bufferSize)(
10464            handle,
10465            m,
10466            n,
10467            nrhs,
10468            dA,
10469            ldda,
10470            dB,
10471            lddb,
10472            dX,
10473            lddx,
10474            dWorkspace,
10475            lwork_bytes,
10476        )
10477    }
10478    pub unsafe fn cusolverDnSHgesv(
10479        handle: cusolverDnHandle_t,
10480        n: cusolver_int_t,
10481        nrhs: cusolver_int_t,
10482        dA: *mut f32,
10483        ldda: cusolver_int_t,
10484        dipiv: *mut cusolver_int_t,
10485        dB: *mut f32,
10486        lddb: cusolver_int_t,
10487        dX: *mut f32,
10488        lddx: cusolver_int_t,
10489        dWorkspace: *mut ::core::ffi::c_void,
10490        lwork_bytes: usize,
10491        iter: *mut cusolver_int_t,
10492        d_info: *mut cusolver_int_t,
10493    ) -> cusolverStatus_t {
10494        (culib().cusolverDnSHgesv)(
10495            handle,
10496            n,
10497            nrhs,
10498            dA,
10499            ldda,
10500            dipiv,
10501            dB,
10502            lddb,
10503            dX,
10504            lddx,
10505            dWorkspace,
10506            lwork_bytes,
10507            iter,
10508            d_info,
10509        )
10510    }
10511    pub unsafe fn cusolverDnSHgesv_bufferSize(
10512        handle: cusolverDnHandle_t,
10513        n: cusolver_int_t,
10514        nrhs: cusolver_int_t,
10515        dA: *mut f32,
10516        ldda: cusolver_int_t,
10517        dipiv: *mut cusolver_int_t,
10518        dB: *mut f32,
10519        lddb: cusolver_int_t,
10520        dX: *mut f32,
10521        lddx: cusolver_int_t,
10522        dWorkspace: *mut ::core::ffi::c_void,
10523        lwork_bytes: *mut usize,
10524    ) -> cusolverStatus_t {
10525        (culib().cusolverDnSHgesv_bufferSize)(
10526            handle,
10527            n,
10528            nrhs,
10529            dA,
10530            ldda,
10531            dipiv,
10532            dB,
10533            lddb,
10534            dX,
10535            lddx,
10536            dWorkspace,
10537            lwork_bytes,
10538        )
10539    }
10540    pub unsafe fn cusolverDnSSgels(
10541        handle: cusolverDnHandle_t,
10542        m: cusolver_int_t,
10543        n: cusolver_int_t,
10544        nrhs: cusolver_int_t,
10545        dA: *mut f32,
10546        ldda: cusolver_int_t,
10547        dB: *mut f32,
10548        lddb: cusolver_int_t,
10549        dX: *mut f32,
10550        lddx: cusolver_int_t,
10551        dWorkspace: *mut ::core::ffi::c_void,
10552        lwork_bytes: usize,
10553        iter: *mut cusolver_int_t,
10554        d_info: *mut cusolver_int_t,
10555    ) -> cusolverStatus_t {
10556        (culib().cusolverDnSSgels)(
10557            handle,
10558            m,
10559            n,
10560            nrhs,
10561            dA,
10562            ldda,
10563            dB,
10564            lddb,
10565            dX,
10566            lddx,
10567            dWorkspace,
10568            lwork_bytes,
10569            iter,
10570            d_info,
10571        )
10572    }
10573    pub unsafe fn cusolverDnSSgels_bufferSize(
10574        handle: cusolverDnHandle_t,
10575        m: cusolver_int_t,
10576        n: cusolver_int_t,
10577        nrhs: cusolver_int_t,
10578        dA: *mut f32,
10579        ldda: cusolver_int_t,
10580        dB: *mut f32,
10581        lddb: cusolver_int_t,
10582        dX: *mut f32,
10583        lddx: cusolver_int_t,
10584        dWorkspace: *mut ::core::ffi::c_void,
10585        lwork_bytes: *mut usize,
10586    ) -> cusolverStatus_t {
10587        (culib().cusolverDnSSgels_bufferSize)(
10588            handle,
10589            m,
10590            n,
10591            nrhs,
10592            dA,
10593            ldda,
10594            dB,
10595            lddb,
10596            dX,
10597            lddx,
10598            dWorkspace,
10599            lwork_bytes,
10600        )
10601    }
10602    pub unsafe fn cusolverDnSSgesv(
10603        handle: cusolverDnHandle_t,
10604        n: cusolver_int_t,
10605        nrhs: cusolver_int_t,
10606        dA: *mut f32,
10607        ldda: cusolver_int_t,
10608        dipiv: *mut cusolver_int_t,
10609        dB: *mut f32,
10610        lddb: cusolver_int_t,
10611        dX: *mut f32,
10612        lddx: cusolver_int_t,
10613        dWorkspace: *mut ::core::ffi::c_void,
10614        lwork_bytes: usize,
10615        iter: *mut cusolver_int_t,
10616        d_info: *mut cusolver_int_t,
10617    ) -> cusolverStatus_t {
10618        (culib().cusolverDnSSgesv)(
10619            handle,
10620            n,
10621            nrhs,
10622            dA,
10623            ldda,
10624            dipiv,
10625            dB,
10626            lddb,
10627            dX,
10628            lddx,
10629            dWorkspace,
10630            lwork_bytes,
10631            iter,
10632            d_info,
10633        )
10634    }
10635    pub unsafe fn cusolverDnSSgesv_bufferSize(
10636        handle: cusolverDnHandle_t,
10637        n: cusolver_int_t,
10638        nrhs: cusolver_int_t,
10639        dA: *mut f32,
10640        ldda: cusolver_int_t,
10641        dipiv: *mut cusolver_int_t,
10642        dB: *mut f32,
10643        lddb: cusolver_int_t,
10644        dX: *mut f32,
10645        lddx: cusolver_int_t,
10646        dWorkspace: *mut ::core::ffi::c_void,
10647        lwork_bytes: *mut usize,
10648    ) -> cusolverStatus_t {
10649        (culib().cusolverDnSSgesv_bufferSize)(
10650            handle,
10651            n,
10652            nrhs,
10653            dA,
10654            ldda,
10655            dipiv,
10656            dB,
10657            lddb,
10658            dX,
10659            lddx,
10660            dWorkspace,
10661            lwork_bytes,
10662        )
10663    }
10664    pub unsafe fn cusolverDnSXgels(
10665        handle: cusolverDnHandle_t,
10666        m: cusolver_int_t,
10667        n: cusolver_int_t,
10668        nrhs: cusolver_int_t,
10669        dA: *mut f32,
10670        ldda: cusolver_int_t,
10671        dB: *mut f32,
10672        lddb: cusolver_int_t,
10673        dX: *mut f32,
10674        lddx: cusolver_int_t,
10675        dWorkspace: *mut ::core::ffi::c_void,
10676        lwork_bytes: usize,
10677        iter: *mut cusolver_int_t,
10678        d_info: *mut cusolver_int_t,
10679    ) -> cusolverStatus_t {
10680        (culib().cusolverDnSXgels)(
10681            handle,
10682            m,
10683            n,
10684            nrhs,
10685            dA,
10686            ldda,
10687            dB,
10688            lddb,
10689            dX,
10690            lddx,
10691            dWorkspace,
10692            lwork_bytes,
10693            iter,
10694            d_info,
10695        )
10696    }
10697    pub unsafe fn cusolverDnSXgels_bufferSize(
10698        handle: cusolverDnHandle_t,
10699        m: cusolver_int_t,
10700        n: cusolver_int_t,
10701        nrhs: cusolver_int_t,
10702        dA: *mut f32,
10703        ldda: cusolver_int_t,
10704        dB: *mut f32,
10705        lddb: cusolver_int_t,
10706        dX: *mut f32,
10707        lddx: cusolver_int_t,
10708        dWorkspace: *mut ::core::ffi::c_void,
10709        lwork_bytes: *mut usize,
10710    ) -> cusolverStatus_t {
10711        (culib().cusolverDnSXgels_bufferSize)(
10712            handle,
10713            m,
10714            n,
10715            nrhs,
10716            dA,
10717            ldda,
10718            dB,
10719            lddb,
10720            dX,
10721            lddx,
10722            dWorkspace,
10723            lwork_bytes,
10724        )
10725    }
10726    pub unsafe fn cusolverDnSXgesv(
10727        handle: cusolverDnHandle_t,
10728        n: cusolver_int_t,
10729        nrhs: cusolver_int_t,
10730        dA: *mut f32,
10731        ldda: cusolver_int_t,
10732        dipiv: *mut cusolver_int_t,
10733        dB: *mut f32,
10734        lddb: cusolver_int_t,
10735        dX: *mut f32,
10736        lddx: cusolver_int_t,
10737        dWorkspace: *mut ::core::ffi::c_void,
10738        lwork_bytes: usize,
10739        iter: *mut cusolver_int_t,
10740        d_info: *mut cusolver_int_t,
10741    ) -> cusolverStatus_t {
10742        (culib().cusolverDnSXgesv)(
10743            handle,
10744            n,
10745            nrhs,
10746            dA,
10747            ldda,
10748            dipiv,
10749            dB,
10750            lddb,
10751            dX,
10752            lddx,
10753            dWorkspace,
10754            lwork_bytes,
10755            iter,
10756            d_info,
10757        )
10758    }
10759    pub unsafe fn cusolverDnSXgesv_bufferSize(
10760        handle: cusolverDnHandle_t,
10761        n: cusolver_int_t,
10762        nrhs: cusolver_int_t,
10763        dA: *mut f32,
10764        ldda: cusolver_int_t,
10765        dipiv: *mut cusolver_int_t,
10766        dB: *mut f32,
10767        lddb: cusolver_int_t,
10768        dX: *mut f32,
10769        lddx: cusolver_int_t,
10770        dWorkspace: *mut ::core::ffi::c_void,
10771        lwork_bytes: *mut usize,
10772    ) -> cusolverStatus_t {
10773        (culib().cusolverDnSXgesv_bufferSize)(
10774            handle,
10775            n,
10776            nrhs,
10777            dA,
10778            ldda,
10779            dipiv,
10780            dB,
10781            lddb,
10782            dX,
10783            lddx,
10784            dWorkspace,
10785            lwork_bytes,
10786        )
10787    }
10788    pub unsafe fn cusolverDnSetAdvOptions(
10789        params: cusolverDnParams_t,
10790        function: cusolverDnFunction_t,
10791        algo: cusolverAlgMode_t,
10792    ) -> cusolverStatus_t {
10793        (culib().cusolverDnSetAdvOptions)(params, function, algo)
10794    }
10795    #[cfg(any(
10796        feature = "cuda-12020",
10797        feature = "cuda-12030",
10798        feature = "cuda-12040",
10799        feature = "cuda-12050",
10800        feature = "cuda-12060",
10801        feature = "cuda-12080",
10802        feature = "cuda-12090",
10803        feature = "cuda-13000",
10804        feature = "cuda-13010"
10805    ))]
10806    pub unsafe fn cusolverDnSetDeterministicMode(
10807        handle: cusolverDnHandle_t,
10808        mode: cusolverDeterministicMode_t,
10809    ) -> cusolverStatus_t {
10810        (culib().cusolverDnSetDeterministicMode)(handle, mode)
10811    }
10812    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
10813    pub unsafe fn cusolverDnSetEmulationStrategy(
10814        handle: cusolverDnHandle_t,
10815        strategy: cudaEmulationStrategy_t,
10816    ) -> cusolverStatus_t {
10817        (culib().cusolverDnSetEmulationStrategy)(handle, strategy)
10818    }
10819    #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
10820    pub unsafe fn cusolverDnSetMathMode(
10821        handle: cusolverDnHandle_t,
10822        mode: cusolverMathMode_t,
10823    ) -> cusolverStatus_t {
10824        (culib().cusolverDnSetMathMode)(handle, mode)
10825    }
10826    pub unsafe fn cusolverDnSetStream(
10827        handle: cusolverDnHandle_t,
10828        streamId: cudaStream_t,
10829    ) -> cusolverStatus_t {
10830        (culib().cusolverDnSetStream)(handle, streamId)
10831    }
10832    pub unsafe fn cusolverDnSgebrd(
10833        handle: cusolverDnHandle_t,
10834        m: ::core::ffi::c_int,
10835        n: ::core::ffi::c_int,
10836        A: *mut f32,
10837        lda: ::core::ffi::c_int,
10838        D: *mut f32,
10839        E: *mut f32,
10840        TAUQ: *mut f32,
10841        TAUP: *mut f32,
10842        Work: *mut f32,
10843        Lwork: ::core::ffi::c_int,
10844        devInfo: *mut ::core::ffi::c_int,
10845    ) -> cusolverStatus_t {
10846        (culib().cusolverDnSgebrd)(handle, m, n, A, lda, D, E, TAUQ, TAUP, Work, Lwork, devInfo)
10847    }
10848    pub unsafe fn cusolverDnSgebrd_bufferSize(
10849        handle: cusolverDnHandle_t,
10850        m: ::core::ffi::c_int,
10851        n: ::core::ffi::c_int,
10852        Lwork: *mut ::core::ffi::c_int,
10853    ) -> cusolverStatus_t {
10854        (culib().cusolverDnSgebrd_bufferSize)(handle, m, n, Lwork)
10855    }
10856    pub unsafe fn cusolverDnSgeqrf(
10857        handle: cusolverDnHandle_t,
10858        m: ::core::ffi::c_int,
10859        n: ::core::ffi::c_int,
10860        A: *mut f32,
10861        lda: ::core::ffi::c_int,
10862        TAU: *mut f32,
10863        Workspace: *mut f32,
10864        Lwork: ::core::ffi::c_int,
10865        devInfo: *mut ::core::ffi::c_int,
10866    ) -> cusolverStatus_t {
10867        (culib().cusolverDnSgeqrf)(handle, m, n, A, lda, TAU, Workspace, Lwork, devInfo)
10868    }
10869    pub unsafe fn cusolverDnSgeqrf_bufferSize(
10870        handle: cusolverDnHandle_t,
10871        m: ::core::ffi::c_int,
10872        n: ::core::ffi::c_int,
10873        A: *mut f32,
10874        lda: ::core::ffi::c_int,
10875        lwork: *mut ::core::ffi::c_int,
10876    ) -> cusolverStatus_t {
10877        (culib().cusolverDnSgeqrf_bufferSize)(handle, m, n, A, lda, lwork)
10878    }
10879    pub unsafe fn cusolverDnSgesvd(
10880        handle: cusolverDnHandle_t,
10881        jobu: ::core::ffi::c_schar,
10882        jobvt: ::core::ffi::c_schar,
10883        m: ::core::ffi::c_int,
10884        n: ::core::ffi::c_int,
10885        A: *mut f32,
10886        lda: ::core::ffi::c_int,
10887        S: *mut f32,
10888        U: *mut f32,
10889        ldu: ::core::ffi::c_int,
10890        VT: *mut f32,
10891        ldvt: ::core::ffi::c_int,
10892        work: *mut f32,
10893        lwork: ::core::ffi::c_int,
10894        rwork: *mut f32,
10895        info: *mut ::core::ffi::c_int,
10896    ) -> cusolverStatus_t {
10897        (culib().cusolverDnSgesvd)(
10898            handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT, ldvt, work, lwork, rwork, info,
10899        )
10900    }
10901    pub unsafe fn cusolverDnSgesvd_bufferSize(
10902        handle: cusolverDnHandle_t,
10903        m: ::core::ffi::c_int,
10904        n: ::core::ffi::c_int,
10905        lwork: *mut ::core::ffi::c_int,
10906    ) -> cusolverStatus_t {
10907        (culib().cusolverDnSgesvd_bufferSize)(handle, m, n, lwork)
10908    }
10909    pub unsafe fn cusolverDnSgesvdaStridedBatched(
10910        handle: cusolverDnHandle_t,
10911        jobz: cusolverEigMode_t,
10912        rank: ::core::ffi::c_int,
10913        m: ::core::ffi::c_int,
10914        n: ::core::ffi::c_int,
10915        d_A: *const f32,
10916        lda: ::core::ffi::c_int,
10917        strideA: ::core::ffi::c_longlong,
10918        d_S: *mut f32,
10919        strideS: ::core::ffi::c_longlong,
10920        d_U: *mut f32,
10921        ldu: ::core::ffi::c_int,
10922        strideU: ::core::ffi::c_longlong,
10923        d_V: *mut f32,
10924        ldv: ::core::ffi::c_int,
10925        strideV: ::core::ffi::c_longlong,
10926        d_work: *mut f32,
10927        lwork: ::core::ffi::c_int,
10928        d_info: *mut ::core::ffi::c_int,
10929        h_R_nrmF: *mut f64,
10930        batchSize: ::core::ffi::c_int,
10931    ) -> cusolverStatus_t {
10932        (culib().cusolverDnSgesvdaStridedBatched)(
10933            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
10934            strideV, d_work, lwork, d_info, h_R_nrmF, batchSize,
10935        )
10936    }
10937    pub unsafe fn cusolverDnSgesvdaStridedBatched_bufferSize(
10938        handle: cusolverDnHandle_t,
10939        jobz: cusolverEigMode_t,
10940        rank: ::core::ffi::c_int,
10941        m: ::core::ffi::c_int,
10942        n: ::core::ffi::c_int,
10943        d_A: *const f32,
10944        lda: ::core::ffi::c_int,
10945        strideA: ::core::ffi::c_longlong,
10946        d_S: *const f32,
10947        strideS: ::core::ffi::c_longlong,
10948        d_U: *const f32,
10949        ldu: ::core::ffi::c_int,
10950        strideU: ::core::ffi::c_longlong,
10951        d_V: *const f32,
10952        ldv: ::core::ffi::c_int,
10953        strideV: ::core::ffi::c_longlong,
10954        lwork: *mut ::core::ffi::c_int,
10955        batchSize: ::core::ffi::c_int,
10956    ) -> cusolverStatus_t {
10957        (culib().cusolverDnSgesvdaStridedBatched_bufferSize)(
10958            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
10959            strideV, lwork, batchSize,
10960        )
10961    }
10962    pub unsafe fn cusolverDnSgesvdj(
10963        handle: cusolverDnHandle_t,
10964        jobz: cusolverEigMode_t,
10965        econ: ::core::ffi::c_int,
10966        m: ::core::ffi::c_int,
10967        n: ::core::ffi::c_int,
10968        A: *mut f32,
10969        lda: ::core::ffi::c_int,
10970        S: *mut f32,
10971        U: *mut f32,
10972        ldu: ::core::ffi::c_int,
10973        V: *mut f32,
10974        ldv: ::core::ffi::c_int,
10975        work: *mut f32,
10976        lwork: ::core::ffi::c_int,
10977        info: *mut ::core::ffi::c_int,
10978        params: gesvdjInfo_t,
10979    ) -> cusolverStatus_t {
10980        (culib().cusolverDnSgesvdj)(
10981            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params,
10982        )
10983    }
10984    pub unsafe fn cusolverDnSgesvdjBatched(
10985        handle: cusolverDnHandle_t,
10986        jobz: cusolverEigMode_t,
10987        m: ::core::ffi::c_int,
10988        n: ::core::ffi::c_int,
10989        A: *mut f32,
10990        lda: ::core::ffi::c_int,
10991        S: *mut f32,
10992        U: *mut f32,
10993        ldu: ::core::ffi::c_int,
10994        V: *mut f32,
10995        ldv: ::core::ffi::c_int,
10996        work: *mut f32,
10997        lwork: ::core::ffi::c_int,
10998        info: *mut ::core::ffi::c_int,
10999        params: gesvdjInfo_t,
11000        batchSize: ::core::ffi::c_int,
11001    ) -> cusolverStatus_t {
11002        (culib().cusolverDnSgesvdjBatched)(
11003            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params, batchSize,
11004        )
11005    }
11006    pub unsafe fn cusolverDnSgesvdjBatched_bufferSize(
11007        handle: cusolverDnHandle_t,
11008        jobz: cusolverEigMode_t,
11009        m: ::core::ffi::c_int,
11010        n: ::core::ffi::c_int,
11011        A: *const f32,
11012        lda: ::core::ffi::c_int,
11013        S: *const f32,
11014        U: *const f32,
11015        ldu: ::core::ffi::c_int,
11016        V: *const f32,
11017        ldv: ::core::ffi::c_int,
11018        lwork: *mut ::core::ffi::c_int,
11019        params: gesvdjInfo_t,
11020        batchSize: ::core::ffi::c_int,
11021    ) -> cusolverStatus_t {
11022        (culib().cusolverDnSgesvdjBatched_bufferSize)(
11023            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, lwork, params, batchSize,
11024        )
11025    }
11026    pub unsafe fn cusolverDnSgesvdj_bufferSize(
11027        handle: cusolverDnHandle_t,
11028        jobz: cusolverEigMode_t,
11029        econ: ::core::ffi::c_int,
11030        m: ::core::ffi::c_int,
11031        n: ::core::ffi::c_int,
11032        A: *const f32,
11033        lda: ::core::ffi::c_int,
11034        S: *const f32,
11035        U: *const f32,
11036        ldu: ::core::ffi::c_int,
11037        V: *const f32,
11038        ldv: ::core::ffi::c_int,
11039        lwork: *mut ::core::ffi::c_int,
11040        params: gesvdjInfo_t,
11041    ) -> cusolverStatus_t {
11042        (culib().cusolverDnSgesvdj_bufferSize)(
11043            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, lwork, params,
11044        )
11045    }
11046    pub unsafe fn cusolverDnSgetrf(
11047        handle: cusolverDnHandle_t,
11048        m: ::core::ffi::c_int,
11049        n: ::core::ffi::c_int,
11050        A: *mut f32,
11051        lda: ::core::ffi::c_int,
11052        Workspace: *mut f32,
11053        devIpiv: *mut ::core::ffi::c_int,
11054        devInfo: *mut ::core::ffi::c_int,
11055    ) -> cusolverStatus_t {
11056        (culib().cusolverDnSgetrf)(handle, m, n, A, lda, Workspace, devIpiv, devInfo)
11057    }
11058    pub unsafe fn cusolverDnSgetrf_bufferSize(
11059        handle: cusolverDnHandle_t,
11060        m: ::core::ffi::c_int,
11061        n: ::core::ffi::c_int,
11062        A: *mut f32,
11063        lda: ::core::ffi::c_int,
11064        Lwork: *mut ::core::ffi::c_int,
11065    ) -> cusolverStatus_t {
11066        (culib().cusolverDnSgetrf_bufferSize)(handle, m, n, A, lda, Lwork)
11067    }
11068    pub unsafe fn cusolverDnSgetrs(
11069        handle: cusolverDnHandle_t,
11070        trans: cublasOperation_t,
11071        n: ::core::ffi::c_int,
11072        nrhs: ::core::ffi::c_int,
11073        A: *const f32,
11074        lda: ::core::ffi::c_int,
11075        devIpiv: *const ::core::ffi::c_int,
11076        B: *mut f32,
11077        ldb: ::core::ffi::c_int,
11078        devInfo: *mut ::core::ffi::c_int,
11079    ) -> cusolverStatus_t {
11080        (culib().cusolverDnSgetrs)(handle, trans, n, nrhs, A, lda, devIpiv, B, ldb, devInfo)
11081    }
11082    pub unsafe fn cusolverDnSlaswp(
11083        handle: cusolverDnHandle_t,
11084        n: ::core::ffi::c_int,
11085        A: *mut f32,
11086        lda: ::core::ffi::c_int,
11087        k1: ::core::ffi::c_int,
11088        k2: ::core::ffi::c_int,
11089        devIpiv: *const ::core::ffi::c_int,
11090        incx: ::core::ffi::c_int,
11091    ) -> cusolverStatus_t {
11092        (culib().cusolverDnSlaswp)(handle, n, A, lda, k1, k2, devIpiv, incx)
11093    }
11094    pub unsafe fn cusolverDnSlauum(
11095        handle: cusolverDnHandle_t,
11096        uplo: cublasFillMode_t,
11097        n: ::core::ffi::c_int,
11098        A: *mut f32,
11099        lda: ::core::ffi::c_int,
11100        work: *mut f32,
11101        lwork: ::core::ffi::c_int,
11102        devInfo: *mut ::core::ffi::c_int,
11103    ) -> cusolverStatus_t {
11104        (culib().cusolverDnSlauum)(handle, uplo, n, A, lda, work, lwork, devInfo)
11105    }
11106    pub unsafe fn cusolverDnSlauum_bufferSize(
11107        handle: cusolverDnHandle_t,
11108        uplo: cublasFillMode_t,
11109        n: ::core::ffi::c_int,
11110        A: *mut f32,
11111        lda: ::core::ffi::c_int,
11112        lwork: *mut ::core::ffi::c_int,
11113    ) -> cusolverStatus_t {
11114        (culib().cusolverDnSlauum_bufferSize)(handle, uplo, n, A, lda, lwork)
11115    }
11116    pub unsafe fn cusolverDnSorgbr(
11117        handle: cusolverDnHandle_t,
11118        side: cublasSideMode_t,
11119        m: ::core::ffi::c_int,
11120        n: ::core::ffi::c_int,
11121        k: ::core::ffi::c_int,
11122        A: *mut f32,
11123        lda: ::core::ffi::c_int,
11124        tau: *const f32,
11125        work: *mut f32,
11126        lwork: ::core::ffi::c_int,
11127        info: *mut ::core::ffi::c_int,
11128    ) -> cusolverStatus_t {
11129        (culib().cusolverDnSorgbr)(handle, side, m, n, k, A, lda, tau, work, lwork, info)
11130    }
11131    pub unsafe fn cusolverDnSorgbr_bufferSize(
11132        handle: cusolverDnHandle_t,
11133        side: cublasSideMode_t,
11134        m: ::core::ffi::c_int,
11135        n: ::core::ffi::c_int,
11136        k: ::core::ffi::c_int,
11137        A: *const f32,
11138        lda: ::core::ffi::c_int,
11139        tau: *const f32,
11140        lwork: *mut ::core::ffi::c_int,
11141    ) -> cusolverStatus_t {
11142        (culib().cusolverDnSorgbr_bufferSize)(handle, side, m, n, k, A, lda, tau, lwork)
11143    }
11144    pub unsafe fn cusolverDnSorgqr(
11145        handle: cusolverDnHandle_t,
11146        m: ::core::ffi::c_int,
11147        n: ::core::ffi::c_int,
11148        k: ::core::ffi::c_int,
11149        A: *mut f32,
11150        lda: ::core::ffi::c_int,
11151        tau: *const f32,
11152        work: *mut f32,
11153        lwork: ::core::ffi::c_int,
11154        info: *mut ::core::ffi::c_int,
11155    ) -> cusolverStatus_t {
11156        (culib().cusolverDnSorgqr)(handle, m, n, k, A, lda, tau, work, lwork, info)
11157    }
11158    pub unsafe fn cusolverDnSorgqr_bufferSize(
11159        handle: cusolverDnHandle_t,
11160        m: ::core::ffi::c_int,
11161        n: ::core::ffi::c_int,
11162        k: ::core::ffi::c_int,
11163        A: *const f32,
11164        lda: ::core::ffi::c_int,
11165        tau: *const f32,
11166        lwork: *mut ::core::ffi::c_int,
11167    ) -> cusolverStatus_t {
11168        (culib().cusolverDnSorgqr_bufferSize)(handle, m, n, k, A, lda, tau, lwork)
11169    }
11170    pub unsafe fn cusolverDnSorgtr(
11171        handle: cusolverDnHandle_t,
11172        uplo: cublasFillMode_t,
11173        n: ::core::ffi::c_int,
11174        A: *mut f32,
11175        lda: ::core::ffi::c_int,
11176        tau: *const f32,
11177        work: *mut f32,
11178        lwork: ::core::ffi::c_int,
11179        info: *mut ::core::ffi::c_int,
11180    ) -> cusolverStatus_t {
11181        (culib().cusolverDnSorgtr)(handle, uplo, n, A, lda, tau, work, lwork, info)
11182    }
11183    pub unsafe fn cusolverDnSorgtr_bufferSize(
11184        handle: cusolverDnHandle_t,
11185        uplo: cublasFillMode_t,
11186        n: ::core::ffi::c_int,
11187        A: *const f32,
11188        lda: ::core::ffi::c_int,
11189        tau: *const f32,
11190        lwork: *mut ::core::ffi::c_int,
11191    ) -> cusolverStatus_t {
11192        (culib().cusolverDnSorgtr_bufferSize)(handle, uplo, n, A, lda, tau, lwork)
11193    }
11194    pub unsafe fn cusolverDnSormqr(
11195        handle: cusolverDnHandle_t,
11196        side: cublasSideMode_t,
11197        trans: cublasOperation_t,
11198        m: ::core::ffi::c_int,
11199        n: ::core::ffi::c_int,
11200        k: ::core::ffi::c_int,
11201        A: *const f32,
11202        lda: ::core::ffi::c_int,
11203        tau: *const f32,
11204        C: *mut f32,
11205        ldc: ::core::ffi::c_int,
11206        work: *mut f32,
11207        lwork: ::core::ffi::c_int,
11208        devInfo: *mut ::core::ffi::c_int,
11209    ) -> cusolverStatus_t {
11210        (culib().cusolverDnSormqr)(
11211            handle, side, trans, m, n, k, A, lda, tau, C, ldc, work, lwork, devInfo,
11212        )
11213    }
11214    pub unsafe fn cusolverDnSormqr_bufferSize(
11215        handle: cusolverDnHandle_t,
11216        side: cublasSideMode_t,
11217        trans: cublasOperation_t,
11218        m: ::core::ffi::c_int,
11219        n: ::core::ffi::c_int,
11220        k: ::core::ffi::c_int,
11221        A: *const f32,
11222        lda: ::core::ffi::c_int,
11223        tau: *const f32,
11224        C: *const f32,
11225        ldc: ::core::ffi::c_int,
11226        lwork: *mut ::core::ffi::c_int,
11227    ) -> cusolverStatus_t {
11228        (culib().cusolverDnSormqr_bufferSize)(
11229            handle, side, trans, m, n, k, A, lda, tau, C, ldc, lwork,
11230        )
11231    }
11232    pub unsafe fn cusolverDnSormtr(
11233        handle: cusolverDnHandle_t,
11234        side: cublasSideMode_t,
11235        uplo: cublasFillMode_t,
11236        trans: cublasOperation_t,
11237        m: ::core::ffi::c_int,
11238        n: ::core::ffi::c_int,
11239        A: *mut f32,
11240        lda: ::core::ffi::c_int,
11241        tau: *mut f32,
11242        C: *mut f32,
11243        ldc: ::core::ffi::c_int,
11244        work: *mut f32,
11245        lwork: ::core::ffi::c_int,
11246        info: *mut ::core::ffi::c_int,
11247    ) -> cusolverStatus_t {
11248        (culib().cusolverDnSormtr)(
11249            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, work, lwork, info,
11250        )
11251    }
11252    pub unsafe fn cusolverDnSormtr_bufferSize(
11253        handle: cusolverDnHandle_t,
11254        side: cublasSideMode_t,
11255        uplo: cublasFillMode_t,
11256        trans: cublasOperation_t,
11257        m: ::core::ffi::c_int,
11258        n: ::core::ffi::c_int,
11259        A: *const f32,
11260        lda: ::core::ffi::c_int,
11261        tau: *const f32,
11262        C: *const f32,
11263        ldc: ::core::ffi::c_int,
11264        lwork: *mut ::core::ffi::c_int,
11265    ) -> cusolverStatus_t {
11266        (culib().cusolverDnSormtr_bufferSize)(
11267            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, lwork,
11268        )
11269    }
11270    pub unsafe fn cusolverDnSpotrf(
11271        handle: cusolverDnHandle_t,
11272        uplo: cublasFillMode_t,
11273        n: ::core::ffi::c_int,
11274        A: *mut f32,
11275        lda: ::core::ffi::c_int,
11276        Workspace: *mut f32,
11277        Lwork: ::core::ffi::c_int,
11278        devInfo: *mut ::core::ffi::c_int,
11279    ) -> cusolverStatus_t {
11280        (culib().cusolverDnSpotrf)(handle, uplo, n, A, lda, Workspace, Lwork, devInfo)
11281    }
11282    pub unsafe fn cusolverDnSpotrfBatched(
11283        handle: cusolverDnHandle_t,
11284        uplo: cublasFillMode_t,
11285        n: ::core::ffi::c_int,
11286        Aarray: *mut *mut f32,
11287        lda: ::core::ffi::c_int,
11288        infoArray: *mut ::core::ffi::c_int,
11289        batchSize: ::core::ffi::c_int,
11290    ) -> cusolverStatus_t {
11291        (culib().cusolverDnSpotrfBatched)(handle, uplo, n, Aarray, lda, infoArray, batchSize)
11292    }
11293    pub unsafe fn cusolverDnSpotrf_bufferSize(
11294        handle: cusolverDnHandle_t,
11295        uplo: cublasFillMode_t,
11296        n: ::core::ffi::c_int,
11297        A: *mut f32,
11298        lda: ::core::ffi::c_int,
11299        Lwork: *mut ::core::ffi::c_int,
11300    ) -> cusolverStatus_t {
11301        (culib().cusolverDnSpotrf_bufferSize)(handle, uplo, n, A, lda, Lwork)
11302    }
11303    pub unsafe fn cusolverDnSpotri(
11304        handle: cusolverDnHandle_t,
11305        uplo: cublasFillMode_t,
11306        n: ::core::ffi::c_int,
11307        A: *mut f32,
11308        lda: ::core::ffi::c_int,
11309        work: *mut f32,
11310        lwork: ::core::ffi::c_int,
11311        devInfo: *mut ::core::ffi::c_int,
11312    ) -> cusolverStatus_t {
11313        (culib().cusolverDnSpotri)(handle, uplo, n, A, lda, work, lwork, devInfo)
11314    }
11315    pub unsafe fn cusolverDnSpotri_bufferSize(
11316        handle: cusolverDnHandle_t,
11317        uplo: cublasFillMode_t,
11318        n: ::core::ffi::c_int,
11319        A: *mut f32,
11320        lda: ::core::ffi::c_int,
11321        lwork: *mut ::core::ffi::c_int,
11322    ) -> cusolverStatus_t {
11323        (culib().cusolverDnSpotri_bufferSize)(handle, uplo, n, A, lda, lwork)
11324    }
11325    pub unsafe fn cusolverDnSpotrs(
11326        handle: cusolverDnHandle_t,
11327        uplo: cublasFillMode_t,
11328        n: ::core::ffi::c_int,
11329        nrhs: ::core::ffi::c_int,
11330        A: *const f32,
11331        lda: ::core::ffi::c_int,
11332        B: *mut f32,
11333        ldb: ::core::ffi::c_int,
11334        devInfo: *mut ::core::ffi::c_int,
11335    ) -> cusolverStatus_t {
11336        (culib().cusolverDnSpotrs)(handle, uplo, n, nrhs, A, lda, B, ldb, devInfo)
11337    }
11338    pub unsafe fn cusolverDnSpotrsBatched(
11339        handle: cusolverDnHandle_t,
11340        uplo: cublasFillMode_t,
11341        n: ::core::ffi::c_int,
11342        nrhs: ::core::ffi::c_int,
11343        A: *mut *mut f32,
11344        lda: ::core::ffi::c_int,
11345        B: *mut *mut f32,
11346        ldb: ::core::ffi::c_int,
11347        d_info: *mut ::core::ffi::c_int,
11348        batchSize: ::core::ffi::c_int,
11349    ) -> cusolverStatus_t {
11350        (culib().cusolverDnSpotrsBatched)(handle, uplo, n, nrhs, A, lda, B, ldb, d_info, batchSize)
11351    }
11352    pub unsafe fn cusolverDnSsyevd(
11353        handle: cusolverDnHandle_t,
11354        jobz: cusolverEigMode_t,
11355        uplo: cublasFillMode_t,
11356        n: ::core::ffi::c_int,
11357        A: *mut f32,
11358        lda: ::core::ffi::c_int,
11359        W: *mut f32,
11360        work: *mut f32,
11361        lwork: ::core::ffi::c_int,
11362        info: *mut ::core::ffi::c_int,
11363    ) -> cusolverStatus_t {
11364        (culib().cusolverDnSsyevd)(handle, jobz, uplo, n, A, lda, W, work, lwork, info)
11365    }
11366    pub unsafe fn cusolverDnSsyevd_bufferSize(
11367        handle: cusolverDnHandle_t,
11368        jobz: cusolverEigMode_t,
11369        uplo: cublasFillMode_t,
11370        n: ::core::ffi::c_int,
11371        A: *const f32,
11372        lda: ::core::ffi::c_int,
11373        W: *const f32,
11374        lwork: *mut ::core::ffi::c_int,
11375    ) -> cusolverStatus_t {
11376        (culib().cusolverDnSsyevd_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork)
11377    }
11378    pub unsafe fn cusolverDnSsyevdx(
11379        handle: cusolverDnHandle_t,
11380        jobz: cusolverEigMode_t,
11381        range: cusolverEigRange_t,
11382        uplo: cublasFillMode_t,
11383        n: ::core::ffi::c_int,
11384        A: *mut f32,
11385        lda: ::core::ffi::c_int,
11386        vl: f32,
11387        vu: f32,
11388        il: ::core::ffi::c_int,
11389        iu: ::core::ffi::c_int,
11390        meig: *mut ::core::ffi::c_int,
11391        W: *mut f32,
11392        work: *mut f32,
11393        lwork: ::core::ffi::c_int,
11394        info: *mut ::core::ffi::c_int,
11395    ) -> cusolverStatus_t {
11396        (culib().cusolverDnSsyevdx)(
11397            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, work, lwork, info,
11398        )
11399    }
11400    pub unsafe fn cusolverDnSsyevdx_bufferSize(
11401        handle: cusolverDnHandle_t,
11402        jobz: cusolverEigMode_t,
11403        range: cusolverEigRange_t,
11404        uplo: cublasFillMode_t,
11405        n: ::core::ffi::c_int,
11406        A: *const f32,
11407        lda: ::core::ffi::c_int,
11408        vl: f32,
11409        vu: f32,
11410        il: ::core::ffi::c_int,
11411        iu: ::core::ffi::c_int,
11412        meig: *mut ::core::ffi::c_int,
11413        W: *const f32,
11414        lwork: *mut ::core::ffi::c_int,
11415    ) -> cusolverStatus_t {
11416        (culib().cusolverDnSsyevdx_bufferSize)(
11417            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, lwork,
11418        )
11419    }
11420    pub unsafe fn cusolverDnSsyevj(
11421        handle: cusolverDnHandle_t,
11422        jobz: cusolverEigMode_t,
11423        uplo: cublasFillMode_t,
11424        n: ::core::ffi::c_int,
11425        A: *mut f32,
11426        lda: ::core::ffi::c_int,
11427        W: *mut f32,
11428        work: *mut f32,
11429        lwork: ::core::ffi::c_int,
11430        info: *mut ::core::ffi::c_int,
11431        params: syevjInfo_t,
11432    ) -> cusolverStatus_t {
11433        (culib().cusolverDnSsyevj)(handle, jobz, uplo, n, A, lda, W, work, lwork, info, params)
11434    }
11435    pub unsafe fn cusolverDnSsyevjBatched(
11436        handle: cusolverDnHandle_t,
11437        jobz: cusolverEigMode_t,
11438        uplo: cublasFillMode_t,
11439        n: ::core::ffi::c_int,
11440        A: *mut f32,
11441        lda: ::core::ffi::c_int,
11442        W: *mut f32,
11443        work: *mut f32,
11444        lwork: ::core::ffi::c_int,
11445        info: *mut ::core::ffi::c_int,
11446        params: syevjInfo_t,
11447        batchSize: ::core::ffi::c_int,
11448    ) -> cusolverStatus_t {
11449        (culib().cusolverDnSsyevjBatched)(
11450            handle, jobz, uplo, n, A, lda, W, work, lwork, info, params, batchSize,
11451        )
11452    }
11453    pub unsafe fn cusolverDnSsyevjBatched_bufferSize(
11454        handle: cusolverDnHandle_t,
11455        jobz: cusolverEigMode_t,
11456        uplo: cublasFillMode_t,
11457        n: ::core::ffi::c_int,
11458        A: *const f32,
11459        lda: ::core::ffi::c_int,
11460        W: *const f32,
11461        lwork: *mut ::core::ffi::c_int,
11462        params: syevjInfo_t,
11463        batchSize: ::core::ffi::c_int,
11464    ) -> cusolverStatus_t {
11465        (culib().cusolverDnSsyevjBatched_bufferSize)(
11466            handle, jobz, uplo, n, A, lda, W, lwork, params, batchSize,
11467        )
11468    }
11469    pub unsafe fn cusolverDnSsyevj_bufferSize(
11470        handle: cusolverDnHandle_t,
11471        jobz: cusolverEigMode_t,
11472        uplo: cublasFillMode_t,
11473        n: ::core::ffi::c_int,
11474        A: *const f32,
11475        lda: ::core::ffi::c_int,
11476        W: *const f32,
11477        lwork: *mut ::core::ffi::c_int,
11478        params: syevjInfo_t,
11479    ) -> cusolverStatus_t {
11480        (culib().cusolverDnSsyevj_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork, params)
11481    }
11482    pub unsafe fn cusolverDnSsygvd(
11483        handle: cusolverDnHandle_t,
11484        itype: cusolverEigType_t,
11485        jobz: cusolverEigMode_t,
11486        uplo: cublasFillMode_t,
11487        n: ::core::ffi::c_int,
11488        A: *mut f32,
11489        lda: ::core::ffi::c_int,
11490        B: *mut f32,
11491        ldb: ::core::ffi::c_int,
11492        W: *mut f32,
11493        work: *mut f32,
11494        lwork: ::core::ffi::c_int,
11495        info: *mut ::core::ffi::c_int,
11496    ) -> cusolverStatus_t {
11497        (culib().cusolverDnSsygvd)(
11498            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info,
11499        )
11500    }
11501    pub unsafe fn cusolverDnSsygvd_bufferSize(
11502        handle: cusolverDnHandle_t,
11503        itype: cusolverEigType_t,
11504        jobz: cusolverEigMode_t,
11505        uplo: cublasFillMode_t,
11506        n: ::core::ffi::c_int,
11507        A: *const f32,
11508        lda: ::core::ffi::c_int,
11509        B: *const f32,
11510        ldb: ::core::ffi::c_int,
11511        W: *const f32,
11512        lwork: *mut ::core::ffi::c_int,
11513    ) -> cusolverStatus_t {
11514        (culib().cusolverDnSsygvd_bufferSize)(
11515            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork,
11516        )
11517    }
11518    pub unsafe fn cusolverDnSsygvdx(
11519        handle: cusolverDnHandle_t,
11520        itype: cusolverEigType_t,
11521        jobz: cusolverEigMode_t,
11522        range: cusolverEigRange_t,
11523        uplo: cublasFillMode_t,
11524        n: ::core::ffi::c_int,
11525        A: *mut f32,
11526        lda: ::core::ffi::c_int,
11527        B: *mut f32,
11528        ldb: ::core::ffi::c_int,
11529        vl: f32,
11530        vu: f32,
11531        il: ::core::ffi::c_int,
11532        iu: ::core::ffi::c_int,
11533        meig: *mut ::core::ffi::c_int,
11534        W: *mut f32,
11535        work: *mut f32,
11536        lwork: ::core::ffi::c_int,
11537        info: *mut ::core::ffi::c_int,
11538    ) -> cusolverStatus_t {
11539        (culib().cusolverDnSsygvdx)(
11540            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, work,
11541            lwork, info,
11542        )
11543    }
11544    pub unsafe fn cusolverDnSsygvdx_bufferSize(
11545        handle: cusolverDnHandle_t,
11546        itype: cusolverEigType_t,
11547        jobz: cusolverEigMode_t,
11548        range: cusolverEigRange_t,
11549        uplo: cublasFillMode_t,
11550        n: ::core::ffi::c_int,
11551        A: *const f32,
11552        lda: ::core::ffi::c_int,
11553        B: *const f32,
11554        ldb: ::core::ffi::c_int,
11555        vl: f32,
11556        vu: f32,
11557        il: ::core::ffi::c_int,
11558        iu: ::core::ffi::c_int,
11559        meig: *mut ::core::ffi::c_int,
11560        W: *const f32,
11561        lwork: *mut ::core::ffi::c_int,
11562    ) -> cusolverStatus_t {
11563        (culib().cusolverDnSsygvdx_bufferSize)(
11564            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, lwork,
11565        )
11566    }
11567    pub unsafe fn cusolverDnSsygvj(
11568        handle: cusolverDnHandle_t,
11569        itype: cusolverEigType_t,
11570        jobz: cusolverEigMode_t,
11571        uplo: cublasFillMode_t,
11572        n: ::core::ffi::c_int,
11573        A: *mut f32,
11574        lda: ::core::ffi::c_int,
11575        B: *mut f32,
11576        ldb: ::core::ffi::c_int,
11577        W: *mut f32,
11578        work: *mut f32,
11579        lwork: ::core::ffi::c_int,
11580        info: *mut ::core::ffi::c_int,
11581        params: syevjInfo_t,
11582    ) -> cusolverStatus_t {
11583        (culib().cusolverDnSsygvj)(
11584            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info, params,
11585        )
11586    }
11587    pub unsafe fn cusolverDnSsygvj_bufferSize(
11588        handle: cusolverDnHandle_t,
11589        itype: cusolverEigType_t,
11590        jobz: cusolverEigMode_t,
11591        uplo: cublasFillMode_t,
11592        n: ::core::ffi::c_int,
11593        A: *const f32,
11594        lda: ::core::ffi::c_int,
11595        B: *const f32,
11596        ldb: ::core::ffi::c_int,
11597        W: *const f32,
11598        lwork: *mut ::core::ffi::c_int,
11599        params: syevjInfo_t,
11600    ) -> cusolverStatus_t {
11601        (culib().cusolverDnSsygvj_bufferSize)(
11602            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork, params,
11603        )
11604    }
11605    pub unsafe fn cusolverDnSsytrd(
11606        handle: cusolverDnHandle_t,
11607        uplo: cublasFillMode_t,
11608        n: ::core::ffi::c_int,
11609        A: *mut f32,
11610        lda: ::core::ffi::c_int,
11611        d: *mut f32,
11612        e: *mut f32,
11613        tau: *mut f32,
11614        work: *mut f32,
11615        lwork: ::core::ffi::c_int,
11616        info: *mut ::core::ffi::c_int,
11617    ) -> cusolverStatus_t {
11618        (culib().cusolverDnSsytrd)(handle, uplo, n, A, lda, d, e, tau, work, lwork, info)
11619    }
11620    pub unsafe fn cusolverDnSsytrd_bufferSize(
11621        handle: cusolverDnHandle_t,
11622        uplo: cublasFillMode_t,
11623        n: ::core::ffi::c_int,
11624        A: *const f32,
11625        lda: ::core::ffi::c_int,
11626        d: *const f32,
11627        e: *const f32,
11628        tau: *const f32,
11629        lwork: *mut ::core::ffi::c_int,
11630    ) -> cusolverStatus_t {
11631        (culib().cusolverDnSsytrd_bufferSize)(handle, uplo, n, A, lda, d, e, tau, lwork)
11632    }
11633    pub unsafe fn cusolverDnSsytrf(
11634        handle: cusolverDnHandle_t,
11635        uplo: cublasFillMode_t,
11636        n: ::core::ffi::c_int,
11637        A: *mut f32,
11638        lda: ::core::ffi::c_int,
11639        ipiv: *mut ::core::ffi::c_int,
11640        work: *mut f32,
11641        lwork: ::core::ffi::c_int,
11642        info: *mut ::core::ffi::c_int,
11643    ) -> cusolverStatus_t {
11644        (culib().cusolverDnSsytrf)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
11645    }
11646    pub unsafe fn cusolverDnSsytrf_bufferSize(
11647        handle: cusolverDnHandle_t,
11648        n: ::core::ffi::c_int,
11649        A: *mut f32,
11650        lda: ::core::ffi::c_int,
11651        lwork: *mut ::core::ffi::c_int,
11652    ) -> cusolverStatus_t {
11653        (culib().cusolverDnSsytrf_bufferSize)(handle, n, A, lda, lwork)
11654    }
11655    pub unsafe fn cusolverDnSsytri(
11656        handle: cusolverDnHandle_t,
11657        uplo: cublasFillMode_t,
11658        n: ::core::ffi::c_int,
11659        A: *mut f32,
11660        lda: ::core::ffi::c_int,
11661        ipiv: *const ::core::ffi::c_int,
11662        work: *mut f32,
11663        lwork: ::core::ffi::c_int,
11664        info: *mut ::core::ffi::c_int,
11665    ) -> cusolverStatus_t {
11666        (culib().cusolverDnSsytri)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
11667    }
11668    pub unsafe fn cusolverDnSsytri_bufferSize(
11669        handle: cusolverDnHandle_t,
11670        uplo: cublasFillMode_t,
11671        n: ::core::ffi::c_int,
11672        A: *mut f32,
11673        lda: ::core::ffi::c_int,
11674        ipiv: *const ::core::ffi::c_int,
11675        lwork: *mut ::core::ffi::c_int,
11676    ) -> cusolverStatus_t {
11677        (culib().cusolverDnSsytri_bufferSize)(handle, uplo, n, A, lda, ipiv, lwork)
11678    }
11679    #[cfg(any(
11680        feature = "cuda-11040",
11681        feature = "cuda-11050",
11682        feature = "cuda-11060",
11683        feature = "cuda-11070",
11684        feature = "cuda-11080",
11685        feature = "cuda-12000",
11686        feature = "cuda-12010",
11687        feature = "cuda-12020",
11688        feature = "cuda-12030",
11689        feature = "cuda-12040",
11690        feature = "cuda-12050",
11691        feature = "cuda-12060",
11692        feature = "cuda-12080",
11693        feature = "cuda-12090"
11694    ))]
11695    pub unsafe fn cusolverDnSyevd(
11696        handle: cusolverDnHandle_t,
11697        params: cusolverDnParams_t,
11698        jobz: cusolverEigMode_t,
11699        uplo: cublasFillMode_t,
11700        n: i64,
11701        dataTypeA: cudaDataType,
11702        A: *mut ::core::ffi::c_void,
11703        lda: i64,
11704        dataTypeW: cudaDataType,
11705        W: *mut ::core::ffi::c_void,
11706        computeType: cudaDataType,
11707        pBuffer: *mut ::core::ffi::c_void,
11708        workspaceInBytes: usize,
11709        info: *mut ::core::ffi::c_int,
11710    ) -> cusolverStatus_t {
11711        (culib().cusolverDnSyevd)(
11712            handle,
11713            params,
11714            jobz,
11715            uplo,
11716            n,
11717            dataTypeA,
11718            A,
11719            lda,
11720            dataTypeW,
11721            W,
11722            computeType,
11723            pBuffer,
11724            workspaceInBytes,
11725            info,
11726        )
11727    }
11728    #[cfg(any(
11729        feature = "cuda-11040",
11730        feature = "cuda-11050",
11731        feature = "cuda-11060",
11732        feature = "cuda-11070",
11733        feature = "cuda-11080",
11734        feature = "cuda-12000",
11735        feature = "cuda-12010",
11736        feature = "cuda-12020",
11737        feature = "cuda-12030",
11738        feature = "cuda-12040",
11739        feature = "cuda-12050",
11740        feature = "cuda-12060",
11741        feature = "cuda-12080",
11742        feature = "cuda-12090"
11743    ))]
11744    pub unsafe fn cusolverDnSyevd_bufferSize(
11745        handle: cusolverDnHandle_t,
11746        params: cusolverDnParams_t,
11747        jobz: cusolverEigMode_t,
11748        uplo: cublasFillMode_t,
11749        n: i64,
11750        dataTypeA: cudaDataType,
11751        A: *const ::core::ffi::c_void,
11752        lda: i64,
11753        dataTypeW: cudaDataType,
11754        W: *const ::core::ffi::c_void,
11755        computeType: cudaDataType,
11756        workspaceInBytes: *mut usize,
11757    ) -> cusolverStatus_t {
11758        (culib().cusolverDnSyevd_bufferSize)(
11759            handle,
11760            params,
11761            jobz,
11762            uplo,
11763            n,
11764            dataTypeA,
11765            A,
11766            lda,
11767            dataTypeW,
11768            W,
11769            computeType,
11770            workspaceInBytes,
11771        )
11772    }
11773    #[cfg(any(
11774        feature = "cuda-11040",
11775        feature = "cuda-11050",
11776        feature = "cuda-11060",
11777        feature = "cuda-11070",
11778        feature = "cuda-11080",
11779        feature = "cuda-12000",
11780        feature = "cuda-12010",
11781        feature = "cuda-12020",
11782        feature = "cuda-12030",
11783        feature = "cuda-12040",
11784        feature = "cuda-12050",
11785        feature = "cuda-12060",
11786        feature = "cuda-12080",
11787        feature = "cuda-12090"
11788    ))]
11789    pub unsafe fn cusolverDnSyevdx(
11790        handle: cusolverDnHandle_t,
11791        params: cusolverDnParams_t,
11792        jobz: cusolverEigMode_t,
11793        range: cusolverEigRange_t,
11794        uplo: cublasFillMode_t,
11795        n: i64,
11796        dataTypeA: cudaDataType,
11797        A: *mut ::core::ffi::c_void,
11798        lda: i64,
11799        vl: *mut ::core::ffi::c_void,
11800        vu: *mut ::core::ffi::c_void,
11801        il: i64,
11802        iu: i64,
11803        meig64: *mut i64,
11804        dataTypeW: cudaDataType,
11805        W: *mut ::core::ffi::c_void,
11806        computeType: cudaDataType,
11807        pBuffer: *mut ::core::ffi::c_void,
11808        workspaceInBytes: usize,
11809        info: *mut ::core::ffi::c_int,
11810    ) -> cusolverStatus_t {
11811        (culib().cusolverDnSyevdx)(
11812            handle,
11813            params,
11814            jobz,
11815            range,
11816            uplo,
11817            n,
11818            dataTypeA,
11819            A,
11820            lda,
11821            vl,
11822            vu,
11823            il,
11824            iu,
11825            meig64,
11826            dataTypeW,
11827            W,
11828            computeType,
11829            pBuffer,
11830            workspaceInBytes,
11831            info,
11832        )
11833    }
11834    #[cfg(any(
11835        feature = "cuda-11040",
11836        feature = "cuda-11050",
11837        feature = "cuda-11060",
11838        feature = "cuda-11070",
11839        feature = "cuda-11080",
11840        feature = "cuda-12000",
11841        feature = "cuda-12010",
11842        feature = "cuda-12020",
11843        feature = "cuda-12030",
11844        feature = "cuda-12040",
11845        feature = "cuda-12050",
11846        feature = "cuda-12060",
11847        feature = "cuda-12080",
11848        feature = "cuda-12090"
11849    ))]
11850    pub unsafe fn cusolverDnSyevdx_bufferSize(
11851        handle: cusolverDnHandle_t,
11852        params: cusolverDnParams_t,
11853        jobz: cusolverEigMode_t,
11854        range: cusolverEigRange_t,
11855        uplo: cublasFillMode_t,
11856        n: i64,
11857        dataTypeA: cudaDataType,
11858        A: *const ::core::ffi::c_void,
11859        lda: i64,
11860        vl: *mut ::core::ffi::c_void,
11861        vu: *mut ::core::ffi::c_void,
11862        il: i64,
11863        iu: i64,
11864        h_meig: *mut i64,
11865        dataTypeW: cudaDataType,
11866        W: *const ::core::ffi::c_void,
11867        computeType: cudaDataType,
11868        workspaceInBytes: *mut usize,
11869    ) -> cusolverStatus_t {
11870        (culib().cusolverDnSyevdx_bufferSize)(
11871            handle,
11872            params,
11873            jobz,
11874            range,
11875            uplo,
11876            n,
11877            dataTypeA,
11878            A,
11879            lda,
11880            vl,
11881            vu,
11882            il,
11883            iu,
11884            h_meig,
11885            dataTypeW,
11886            W,
11887            computeType,
11888            workspaceInBytes,
11889        )
11890    }
11891    #[cfg(any(
11892        feature = "cuda-12060",
11893        feature = "cuda-12080",
11894        feature = "cuda-12090",
11895        feature = "cuda-13000",
11896        feature = "cuda-13010"
11897    ))]
11898    pub unsafe fn cusolverDnXgeev(
11899        handle: cusolverDnHandle_t,
11900        params: cusolverDnParams_t,
11901        jobvl: cusolverEigMode_t,
11902        jobvr: cusolverEigMode_t,
11903        n: i64,
11904        dataTypeA: cudaDataType,
11905        A: *mut ::core::ffi::c_void,
11906        lda: i64,
11907        dataTypeW: cudaDataType,
11908        W: *mut ::core::ffi::c_void,
11909        dataTypeVL: cudaDataType,
11910        VL: *mut ::core::ffi::c_void,
11911        ldvl: i64,
11912        dataTypeVR: cudaDataType,
11913        VR: *mut ::core::ffi::c_void,
11914        ldvr: i64,
11915        computeType: cudaDataType,
11916        bufferOnDevice: *mut ::core::ffi::c_void,
11917        workspaceInBytesOnDevice: usize,
11918        bufferOnHost: *mut ::core::ffi::c_void,
11919        workspaceInBytesOnHost: usize,
11920        info: *mut ::core::ffi::c_int,
11921    ) -> cusolverStatus_t {
11922        (culib().cusolverDnXgeev)(
11923            handle,
11924            params,
11925            jobvl,
11926            jobvr,
11927            n,
11928            dataTypeA,
11929            A,
11930            lda,
11931            dataTypeW,
11932            W,
11933            dataTypeVL,
11934            VL,
11935            ldvl,
11936            dataTypeVR,
11937            VR,
11938            ldvr,
11939            computeType,
11940            bufferOnDevice,
11941            workspaceInBytesOnDevice,
11942            bufferOnHost,
11943            workspaceInBytesOnHost,
11944            info,
11945        )
11946    }
11947    #[cfg(any(
11948        feature = "cuda-12060",
11949        feature = "cuda-12080",
11950        feature = "cuda-12090",
11951        feature = "cuda-13000",
11952        feature = "cuda-13010"
11953    ))]
11954    pub unsafe fn cusolverDnXgeev_bufferSize(
11955        handle: cusolverDnHandle_t,
11956        params: cusolverDnParams_t,
11957        jobvl: cusolverEigMode_t,
11958        jobvr: cusolverEigMode_t,
11959        n: i64,
11960        dataTypeA: cudaDataType,
11961        A: *const ::core::ffi::c_void,
11962        lda: i64,
11963        dataTypeW: cudaDataType,
11964        W: *const ::core::ffi::c_void,
11965        dataTypeVL: cudaDataType,
11966        VL: *const ::core::ffi::c_void,
11967        ldvl: i64,
11968        dataTypeVR: cudaDataType,
11969        VR: *const ::core::ffi::c_void,
11970        ldvr: i64,
11971        computeType: cudaDataType,
11972        workspaceInBytesOnDevice: *mut usize,
11973        workspaceInBytesOnHost: *mut usize,
11974    ) -> cusolverStatus_t {
11975        (culib().cusolverDnXgeev_bufferSize)(
11976            handle,
11977            params,
11978            jobvl,
11979            jobvr,
11980            n,
11981            dataTypeA,
11982            A,
11983            lda,
11984            dataTypeW,
11985            W,
11986            dataTypeVL,
11987            VL,
11988            ldvl,
11989            dataTypeVR,
11990            VR,
11991            ldvr,
11992            computeType,
11993            workspaceInBytesOnDevice,
11994            workspaceInBytesOnHost,
11995        )
11996    }
11997    pub unsafe fn cusolverDnXgeqrf(
11998        handle: cusolverDnHandle_t,
11999        params: cusolverDnParams_t,
12000        m: i64,
12001        n: i64,
12002        dataTypeA: cudaDataType,
12003        A: *mut ::core::ffi::c_void,
12004        lda: i64,
12005        dataTypeTau: cudaDataType,
12006        tau: *mut ::core::ffi::c_void,
12007        computeType: cudaDataType,
12008        bufferOnDevice: *mut ::core::ffi::c_void,
12009        workspaceInBytesOnDevice: usize,
12010        bufferOnHost: *mut ::core::ffi::c_void,
12011        workspaceInBytesOnHost: usize,
12012        info: *mut ::core::ffi::c_int,
12013    ) -> cusolverStatus_t {
12014        (culib().cusolverDnXgeqrf)(
12015            handle,
12016            params,
12017            m,
12018            n,
12019            dataTypeA,
12020            A,
12021            lda,
12022            dataTypeTau,
12023            tau,
12024            computeType,
12025            bufferOnDevice,
12026            workspaceInBytesOnDevice,
12027            bufferOnHost,
12028            workspaceInBytesOnHost,
12029            info,
12030        )
12031    }
12032    pub unsafe fn cusolverDnXgeqrf_bufferSize(
12033        handle: cusolverDnHandle_t,
12034        params: cusolverDnParams_t,
12035        m: i64,
12036        n: i64,
12037        dataTypeA: cudaDataType,
12038        A: *const ::core::ffi::c_void,
12039        lda: i64,
12040        dataTypeTau: cudaDataType,
12041        tau: *const ::core::ffi::c_void,
12042        computeType: cudaDataType,
12043        workspaceInBytesOnDevice: *mut usize,
12044        workspaceInBytesOnHost: *mut usize,
12045    ) -> cusolverStatus_t {
12046        (culib().cusolverDnXgeqrf_bufferSize)(
12047            handle,
12048            params,
12049            m,
12050            n,
12051            dataTypeA,
12052            A,
12053            lda,
12054            dataTypeTau,
12055            tau,
12056            computeType,
12057            workspaceInBytesOnDevice,
12058            workspaceInBytesOnHost,
12059        )
12060    }
12061    pub unsafe fn cusolverDnXgesvd(
12062        handle: cusolverDnHandle_t,
12063        params: cusolverDnParams_t,
12064        jobu: ::core::ffi::c_schar,
12065        jobvt: ::core::ffi::c_schar,
12066        m: i64,
12067        n: i64,
12068        dataTypeA: cudaDataType,
12069        A: *mut ::core::ffi::c_void,
12070        lda: i64,
12071        dataTypeS: cudaDataType,
12072        S: *mut ::core::ffi::c_void,
12073        dataTypeU: cudaDataType,
12074        U: *mut ::core::ffi::c_void,
12075        ldu: i64,
12076        dataTypeVT: cudaDataType,
12077        VT: *mut ::core::ffi::c_void,
12078        ldvt: i64,
12079        computeType: cudaDataType,
12080        bufferOnDevice: *mut ::core::ffi::c_void,
12081        workspaceInBytesOnDevice: usize,
12082        bufferOnHost: *mut ::core::ffi::c_void,
12083        workspaceInBytesOnHost: usize,
12084        info: *mut ::core::ffi::c_int,
12085    ) -> cusolverStatus_t {
12086        (culib().cusolverDnXgesvd)(
12087            handle,
12088            params,
12089            jobu,
12090            jobvt,
12091            m,
12092            n,
12093            dataTypeA,
12094            A,
12095            lda,
12096            dataTypeS,
12097            S,
12098            dataTypeU,
12099            U,
12100            ldu,
12101            dataTypeVT,
12102            VT,
12103            ldvt,
12104            computeType,
12105            bufferOnDevice,
12106            workspaceInBytesOnDevice,
12107            bufferOnHost,
12108            workspaceInBytesOnHost,
12109            info,
12110        )
12111    }
12112    pub unsafe fn cusolverDnXgesvd_bufferSize(
12113        handle: cusolverDnHandle_t,
12114        params: cusolverDnParams_t,
12115        jobu: ::core::ffi::c_schar,
12116        jobvt: ::core::ffi::c_schar,
12117        m: i64,
12118        n: i64,
12119        dataTypeA: cudaDataType,
12120        A: *const ::core::ffi::c_void,
12121        lda: i64,
12122        dataTypeS: cudaDataType,
12123        S: *const ::core::ffi::c_void,
12124        dataTypeU: cudaDataType,
12125        U: *const ::core::ffi::c_void,
12126        ldu: i64,
12127        dataTypeVT: cudaDataType,
12128        VT: *const ::core::ffi::c_void,
12129        ldvt: i64,
12130        computeType: cudaDataType,
12131        workspaceInBytesOnDevice: *mut usize,
12132        workspaceInBytesOnHost: *mut usize,
12133    ) -> cusolverStatus_t {
12134        (culib().cusolverDnXgesvd_bufferSize)(
12135            handle,
12136            params,
12137            jobu,
12138            jobvt,
12139            m,
12140            n,
12141            dataTypeA,
12142            A,
12143            lda,
12144            dataTypeS,
12145            S,
12146            dataTypeU,
12147            U,
12148            ldu,
12149            dataTypeVT,
12150            VT,
12151            ldvt,
12152            computeType,
12153            workspaceInBytesOnDevice,
12154            workspaceInBytesOnHost,
12155        )
12156    }
12157    pub unsafe fn cusolverDnXgesvdjGetResidual(
12158        handle: cusolverDnHandle_t,
12159        info: gesvdjInfo_t,
12160        residual: *mut f64,
12161    ) -> cusolverStatus_t {
12162        (culib().cusolverDnXgesvdjGetResidual)(handle, info, residual)
12163    }
12164    pub unsafe fn cusolverDnXgesvdjGetSweeps(
12165        handle: cusolverDnHandle_t,
12166        info: gesvdjInfo_t,
12167        executed_sweeps: *mut ::core::ffi::c_int,
12168    ) -> cusolverStatus_t {
12169        (culib().cusolverDnXgesvdjGetSweeps)(handle, info, executed_sweeps)
12170    }
12171    pub unsafe fn cusolverDnXgesvdjSetMaxSweeps(
12172        info: gesvdjInfo_t,
12173        max_sweeps: ::core::ffi::c_int,
12174    ) -> cusolverStatus_t {
12175        (culib().cusolverDnXgesvdjSetMaxSweeps)(info, max_sweeps)
12176    }
12177    pub unsafe fn cusolverDnXgesvdjSetSortEig(
12178        info: gesvdjInfo_t,
12179        sort_svd: ::core::ffi::c_int,
12180    ) -> cusolverStatus_t {
12181        (culib().cusolverDnXgesvdjSetSortEig)(info, sort_svd)
12182    }
12183    pub unsafe fn cusolverDnXgesvdjSetTolerance(
12184        info: gesvdjInfo_t,
12185        tolerance: f64,
12186    ) -> cusolverStatus_t {
12187        (culib().cusolverDnXgesvdjSetTolerance)(info, tolerance)
12188    }
12189    pub unsafe fn cusolverDnXgesvdp(
12190        handle: cusolverDnHandle_t,
12191        params: cusolverDnParams_t,
12192        jobz: cusolverEigMode_t,
12193        econ: ::core::ffi::c_int,
12194        m: i64,
12195        n: i64,
12196        dataTypeA: cudaDataType,
12197        A: *mut ::core::ffi::c_void,
12198        lda: i64,
12199        dataTypeS: cudaDataType,
12200        S: *mut ::core::ffi::c_void,
12201        dataTypeU: cudaDataType,
12202        U: *mut ::core::ffi::c_void,
12203        ldu: i64,
12204        dataTypeV: cudaDataType,
12205        V: *mut ::core::ffi::c_void,
12206        ldv: i64,
12207        computeType: cudaDataType,
12208        bufferOnDevice: *mut ::core::ffi::c_void,
12209        workspaceInBytesOnDevice: usize,
12210        bufferOnHost: *mut ::core::ffi::c_void,
12211        workspaceInBytesOnHost: usize,
12212        d_info: *mut ::core::ffi::c_int,
12213        h_err_sigma: *mut f64,
12214    ) -> cusolverStatus_t {
12215        (culib().cusolverDnXgesvdp)(
12216            handle,
12217            params,
12218            jobz,
12219            econ,
12220            m,
12221            n,
12222            dataTypeA,
12223            A,
12224            lda,
12225            dataTypeS,
12226            S,
12227            dataTypeU,
12228            U,
12229            ldu,
12230            dataTypeV,
12231            V,
12232            ldv,
12233            computeType,
12234            bufferOnDevice,
12235            workspaceInBytesOnDevice,
12236            bufferOnHost,
12237            workspaceInBytesOnHost,
12238            d_info,
12239            h_err_sigma,
12240        )
12241    }
12242    pub unsafe fn cusolverDnXgesvdp_bufferSize(
12243        handle: cusolverDnHandle_t,
12244        params: cusolverDnParams_t,
12245        jobz: cusolverEigMode_t,
12246        econ: ::core::ffi::c_int,
12247        m: i64,
12248        n: i64,
12249        dataTypeA: cudaDataType,
12250        A: *const ::core::ffi::c_void,
12251        lda: i64,
12252        dataTypeS: cudaDataType,
12253        S: *const ::core::ffi::c_void,
12254        dataTypeU: cudaDataType,
12255        U: *const ::core::ffi::c_void,
12256        ldu: i64,
12257        dataTypeV: cudaDataType,
12258        V: *const ::core::ffi::c_void,
12259        ldv: i64,
12260        computeType: cudaDataType,
12261        workspaceInBytesOnDevice: *mut usize,
12262        workspaceInBytesOnHost: *mut usize,
12263    ) -> cusolverStatus_t {
12264        (culib().cusolverDnXgesvdp_bufferSize)(
12265            handle,
12266            params,
12267            jobz,
12268            econ,
12269            m,
12270            n,
12271            dataTypeA,
12272            A,
12273            lda,
12274            dataTypeS,
12275            S,
12276            dataTypeU,
12277            U,
12278            ldu,
12279            dataTypeV,
12280            V,
12281            ldv,
12282            computeType,
12283            workspaceInBytesOnDevice,
12284            workspaceInBytesOnHost,
12285        )
12286    }
12287    pub unsafe fn cusolverDnXgesvdr(
12288        handle: cusolverDnHandle_t,
12289        params: cusolverDnParams_t,
12290        jobu: ::core::ffi::c_schar,
12291        jobv: ::core::ffi::c_schar,
12292        m: i64,
12293        n: i64,
12294        k: i64,
12295        p: i64,
12296        niters: i64,
12297        dataTypeA: cudaDataType,
12298        A: *mut ::core::ffi::c_void,
12299        lda: i64,
12300        dataTypeSrand: cudaDataType,
12301        Srand: *mut ::core::ffi::c_void,
12302        dataTypeUrand: cudaDataType,
12303        Urand: *mut ::core::ffi::c_void,
12304        ldUrand: i64,
12305        dataTypeVrand: cudaDataType,
12306        Vrand: *mut ::core::ffi::c_void,
12307        ldVrand: i64,
12308        computeType: cudaDataType,
12309        bufferOnDevice: *mut ::core::ffi::c_void,
12310        workspaceInBytesOnDevice: usize,
12311        bufferOnHost: *mut ::core::ffi::c_void,
12312        workspaceInBytesOnHost: usize,
12313        d_info: *mut ::core::ffi::c_int,
12314    ) -> cusolverStatus_t {
12315        (culib().cusolverDnXgesvdr)(
12316            handle,
12317            params,
12318            jobu,
12319            jobv,
12320            m,
12321            n,
12322            k,
12323            p,
12324            niters,
12325            dataTypeA,
12326            A,
12327            lda,
12328            dataTypeSrand,
12329            Srand,
12330            dataTypeUrand,
12331            Urand,
12332            ldUrand,
12333            dataTypeVrand,
12334            Vrand,
12335            ldVrand,
12336            computeType,
12337            bufferOnDevice,
12338            workspaceInBytesOnDevice,
12339            bufferOnHost,
12340            workspaceInBytesOnHost,
12341            d_info,
12342        )
12343    }
12344    pub unsafe fn cusolverDnXgesvdr_bufferSize(
12345        handle: cusolverDnHandle_t,
12346        params: cusolverDnParams_t,
12347        jobu: ::core::ffi::c_schar,
12348        jobv: ::core::ffi::c_schar,
12349        m: i64,
12350        n: i64,
12351        k: i64,
12352        p: i64,
12353        niters: i64,
12354        dataTypeA: cudaDataType,
12355        A: *const ::core::ffi::c_void,
12356        lda: i64,
12357        dataTypeSrand: cudaDataType,
12358        Srand: *const ::core::ffi::c_void,
12359        dataTypeUrand: cudaDataType,
12360        Urand: *const ::core::ffi::c_void,
12361        ldUrand: i64,
12362        dataTypeVrand: cudaDataType,
12363        Vrand: *const ::core::ffi::c_void,
12364        ldVrand: i64,
12365        computeType: cudaDataType,
12366        workspaceInBytesOnDevice: *mut usize,
12367        workspaceInBytesOnHost: *mut usize,
12368    ) -> cusolverStatus_t {
12369        (culib().cusolverDnXgesvdr_bufferSize)(
12370            handle,
12371            params,
12372            jobu,
12373            jobv,
12374            m,
12375            n,
12376            k,
12377            p,
12378            niters,
12379            dataTypeA,
12380            A,
12381            lda,
12382            dataTypeSrand,
12383            Srand,
12384            dataTypeUrand,
12385            Urand,
12386            ldUrand,
12387            dataTypeVrand,
12388            Vrand,
12389            ldVrand,
12390            computeType,
12391            workspaceInBytesOnDevice,
12392            workspaceInBytesOnHost,
12393        )
12394    }
12395    pub unsafe fn cusolverDnXgetrf(
12396        handle: cusolverDnHandle_t,
12397        params: cusolverDnParams_t,
12398        m: i64,
12399        n: i64,
12400        dataTypeA: cudaDataType,
12401        A: *mut ::core::ffi::c_void,
12402        lda: i64,
12403        ipiv: *mut i64,
12404        computeType: cudaDataType,
12405        bufferOnDevice: *mut ::core::ffi::c_void,
12406        workspaceInBytesOnDevice: usize,
12407        bufferOnHost: *mut ::core::ffi::c_void,
12408        workspaceInBytesOnHost: usize,
12409        info: *mut ::core::ffi::c_int,
12410    ) -> cusolverStatus_t {
12411        (culib().cusolverDnXgetrf)(
12412            handle,
12413            params,
12414            m,
12415            n,
12416            dataTypeA,
12417            A,
12418            lda,
12419            ipiv,
12420            computeType,
12421            bufferOnDevice,
12422            workspaceInBytesOnDevice,
12423            bufferOnHost,
12424            workspaceInBytesOnHost,
12425            info,
12426        )
12427    }
12428    pub unsafe fn cusolverDnXgetrf_bufferSize(
12429        handle: cusolverDnHandle_t,
12430        params: cusolverDnParams_t,
12431        m: i64,
12432        n: i64,
12433        dataTypeA: cudaDataType,
12434        A: *const ::core::ffi::c_void,
12435        lda: i64,
12436        computeType: cudaDataType,
12437        workspaceInBytesOnDevice: *mut usize,
12438        workspaceInBytesOnHost: *mut usize,
12439    ) -> cusolverStatus_t {
12440        (culib().cusolverDnXgetrf_bufferSize)(
12441            handle,
12442            params,
12443            m,
12444            n,
12445            dataTypeA,
12446            A,
12447            lda,
12448            computeType,
12449            workspaceInBytesOnDevice,
12450            workspaceInBytesOnHost,
12451        )
12452    }
12453    pub unsafe fn cusolverDnXgetrs(
12454        handle: cusolverDnHandle_t,
12455        params: cusolverDnParams_t,
12456        trans: cublasOperation_t,
12457        n: i64,
12458        nrhs: i64,
12459        dataTypeA: cudaDataType,
12460        A: *const ::core::ffi::c_void,
12461        lda: i64,
12462        ipiv: *const i64,
12463        dataTypeB: cudaDataType,
12464        B: *mut ::core::ffi::c_void,
12465        ldb: i64,
12466        info: *mut ::core::ffi::c_int,
12467    ) -> cusolverStatus_t {
12468        (culib().cusolverDnXgetrs)(
12469            handle, params, trans, n, nrhs, dataTypeA, A, lda, ipiv, dataTypeB, B, ldb, info,
12470        )
12471    }
12472    #[cfg(any(feature = "cuda-12040"))]
12473    pub unsafe fn cusolverDnXlarft(
12474        handle: cusolverDnHandle_t,
12475        params: cusolverDnParams_t,
12476        direct: cusolverDirectMode_t,
12477        storev: cusolverStorevMode_t,
12478        N: i64,
12479        K: i64,
12480        dataTypeV: cudaDataType,
12481        d_V: *const ::core::ffi::c_void,
12482        ldv: i64,
12483        dataTypeTau: cudaDataType,
12484        d_tau: *const ::core::ffi::c_void,
12485        dataTypeT: cudaDataType,
12486        d_T: *mut ::core::ffi::c_void,
12487        ldt: i64,
12488        computeType: cudaDataType,
12489        bufferOnDevice: *mut ::core::ffi::c_void,
12490        workspaceInBytesOnDevice: usize,
12491        bufferOnHost: *mut ::core::ffi::c_void,
12492        workspaceInBytesOnHost: usize,
12493    ) -> cusolverStatus_t {
12494        (culib().cusolverDnXlarft)(
12495            handle,
12496            params,
12497            direct,
12498            storev,
12499            N,
12500            K,
12501            dataTypeV,
12502            d_V,
12503            ldv,
12504            dataTypeTau,
12505            d_tau,
12506            dataTypeT,
12507            d_T,
12508            ldt,
12509            computeType,
12510            bufferOnDevice,
12511            workspaceInBytesOnDevice,
12512            bufferOnHost,
12513            workspaceInBytesOnHost,
12514        )
12515    }
12516    #[cfg(any(
12517        feature = "cuda-12050",
12518        feature = "cuda-12060",
12519        feature = "cuda-12080",
12520        feature = "cuda-12090",
12521        feature = "cuda-13000",
12522        feature = "cuda-13010"
12523    ))]
12524    pub unsafe fn cusolverDnXlarft(
12525        handle: cusolverDnHandle_t,
12526        params: cusolverDnParams_t,
12527        direct: cusolverDirectMode_t,
12528        storev: cusolverStorevMode_t,
12529        n: i64,
12530        k: i64,
12531        dataTypeV: cudaDataType,
12532        V: *const ::core::ffi::c_void,
12533        ldv: i64,
12534        dataTypeTau: cudaDataType,
12535        tau: *const ::core::ffi::c_void,
12536        dataTypeT: cudaDataType,
12537        T: *mut ::core::ffi::c_void,
12538        ldt: i64,
12539        computeType: cudaDataType,
12540        bufferOnDevice: *mut ::core::ffi::c_void,
12541        workspaceInBytesOnDevice: usize,
12542        bufferOnHost: *mut ::core::ffi::c_void,
12543        workspaceInBytesOnHost: usize,
12544    ) -> cusolverStatus_t {
12545        (culib().cusolverDnXlarft)(
12546            handle,
12547            params,
12548            direct,
12549            storev,
12550            n,
12551            k,
12552            dataTypeV,
12553            V,
12554            ldv,
12555            dataTypeTau,
12556            tau,
12557            dataTypeT,
12558            T,
12559            ldt,
12560            computeType,
12561            bufferOnDevice,
12562            workspaceInBytesOnDevice,
12563            bufferOnHost,
12564            workspaceInBytesOnHost,
12565        )
12566    }
12567    #[cfg(any(feature = "cuda-12040"))]
12568    pub unsafe fn cusolverDnXlarft_bufferSize(
12569        handle: cusolverDnHandle_t,
12570        params: cusolverDnParams_t,
12571        direct: cusolverDirectMode_t,
12572        storev: cusolverStorevMode_t,
12573        N: i64,
12574        K: i64,
12575        dataTypeV: cudaDataType,
12576        d_V: *const ::core::ffi::c_void,
12577        ldv: i64,
12578        dataTypeTau: cudaDataType,
12579        d_tau: *const ::core::ffi::c_void,
12580        dataTypeT: cudaDataType,
12581        d_T: *mut ::core::ffi::c_void,
12582        ldt: i64,
12583        computeType: cudaDataType,
12584        workspaceInBytesOnDevice: *mut usize,
12585        workspaceInBytesOnHost: *mut usize,
12586    ) -> cusolverStatus_t {
12587        (culib().cusolverDnXlarft_bufferSize)(
12588            handle,
12589            params,
12590            direct,
12591            storev,
12592            N,
12593            K,
12594            dataTypeV,
12595            d_V,
12596            ldv,
12597            dataTypeTau,
12598            d_tau,
12599            dataTypeT,
12600            d_T,
12601            ldt,
12602            computeType,
12603            workspaceInBytesOnDevice,
12604            workspaceInBytesOnHost,
12605        )
12606    }
12607    #[cfg(any(
12608        feature = "cuda-12050",
12609        feature = "cuda-12060",
12610        feature = "cuda-12080",
12611        feature = "cuda-12090",
12612        feature = "cuda-13000",
12613        feature = "cuda-13010"
12614    ))]
12615    pub unsafe fn cusolverDnXlarft_bufferSize(
12616        handle: cusolverDnHandle_t,
12617        params: cusolverDnParams_t,
12618        direct: cusolverDirectMode_t,
12619        storev: cusolverStorevMode_t,
12620        n: i64,
12621        k: i64,
12622        dataTypeV: cudaDataType,
12623        V: *const ::core::ffi::c_void,
12624        ldv: i64,
12625        dataTypeTau: cudaDataType,
12626        tau: *const ::core::ffi::c_void,
12627        dataTypeT: cudaDataType,
12628        T: *mut ::core::ffi::c_void,
12629        ldt: i64,
12630        computeType: cudaDataType,
12631        workspaceInBytesOnDevice: *mut usize,
12632        workspaceInBytesOnHost: *mut usize,
12633    ) -> cusolverStatus_t {
12634        (culib().cusolverDnXlarft_bufferSize)(
12635            handle,
12636            params,
12637            direct,
12638            storev,
12639            n,
12640            k,
12641            dataTypeV,
12642            V,
12643            ldv,
12644            dataTypeTau,
12645            tau,
12646            dataTypeT,
12647            T,
12648            ldt,
12649            computeType,
12650            workspaceInBytesOnDevice,
12651            workspaceInBytesOnHost,
12652        )
12653    }
12654    pub unsafe fn cusolverDnXpotrf(
12655        handle: cusolverDnHandle_t,
12656        params: cusolverDnParams_t,
12657        uplo: cublasFillMode_t,
12658        n: i64,
12659        dataTypeA: cudaDataType,
12660        A: *mut ::core::ffi::c_void,
12661        lda: i64,
12662        computeType: cudaDataType,
12663        bufferOnDevice: *mut ::core::ffi::c_void,
12664        workspaceInBytesOnDevice: usize,
12665        bufferOnHost: *mut ::core::ffi::c_void,
12666        workspaceInBytesOnHost: usize,
12667        info: *mut ::core::ffi::c_int,
12668    ) -> cusolverStatus_t {
12669        (culib().cusolverDnXpotrf)(
12670            handle,
12671            params,
12672            uplo,
12673            n,
12674            dataTypeA,
12675            A,
12676            lda,
12677            computeType,
12678            bufferOnDevice,
12679            workspaceInBytesOnDevice,
12680            bufferOnHost,
12681            workspaceInBytesOnHost,
12682            info,
12683        )
12684    }
12685    pub unsafe fn cusolverDnXpotrf_bufferSize(
12686        handle: cusolverDnHandle_t,
12687        params: cusolverDnParams_t,
12688        uplo: cublasFillMode_t,
12689        n: i64,
12690        dataTypeA: cudaDataType,
12691        A: *const ::core::ffi::c_void,
12692        lda: i64,
12693        computeType: cudaDataType,
12694        workspaceInBytesOnDevice: *mut usize,
12695        workspaceInBytesOnHost: *mut usize,
12696    ) -> cusolverStatus_t {
12697        (culib().cusolverDnXpotrf_bufferSize)(
12698            handle,
12699            params,
12700            uplo,
12701            n,
12702            dataTypeA,
12703            A,
12704            lda,
12705            computeType,
12706            workspaceInBytesOnDevice,
12707            workspaceInBytesOnHost,
12708        )
12709    }
12710    pub unsafe fn cusolverDnXpotrs(
12711        handle: cusolverDnHandle_t,
12712        params: cusolverDnParams_t,
12713        uplo: cublasFillMode_t,
12714        n: i64,
12715        nrhs: i64,
12716        dataTypeA: cudaDataType,
12717        A: *const ::core::ffi::c_void,
12718        lda: i64,
12719        dataTypeB: cudaDataType,
12720        B: *mut ::core::ffi::c_void,
12721        ldb: i64,
12722        info: *mut ::core::ffi::c_int,
12723    ) -> cusolverStatus_t {
12724        (culib().cusolverDnXpotrs)(
12725            handle, params, uplo, n, nrhs, dataTypeA, A, lda, dataTypeB, B, ldb, info,
12726        )
12727    }
12728    #[cfg(any(
12729        feature = "cuda-12060",
12730        feature = "cuda-12080",
12731        feature = "cuda-12090",
12732        feature = "cuda-13000",
12733        feature = "cuda-13010"
12734    ))]
12735    pub unsafe fn cusolverDnXsyevBatched(
12736        handle: cusolverDnHandle_t,
12737        params: cusolverDnParams_t,
12738        jobz: cusolverEigMode_t,
12739        uplo: cublasFillMode_t,
12740        n: i64,
12741        dataTypeA: cudaDataType,
12742        A: *mut ::core::ffi::c_void,
12743        lda: i64,
12744        dataTypeW: cudaDataType,
12745        W: *mut ::core::ffi::c_void,
12746        computeType: cudaDataType,
12747        bufferOnDevice: *mut ::core::ffi::c_void,
12748        workspaceInBytesOnDevice: usize,
12749        bufferOnHost: *mut ::core::ffi::c_void,
12750        workspaceInBytesOnHost: usize,
12751        info: *mut ::core::ffi::c_int,
12752        batchSize: i64,
12753    ) -> cusolverStatus_t {
12754        (culib().cusolverDnXsyevBatched)(
12755            handle,
12756            params,
12757            jobz,
12758            uplo,
12759            n,
12760            dataTypeA,
12761            A,
12762            lda,
12763            dataTypeW,
12764            W,
12765            computeType,
12766            bufferOnDevice,
12767            workspaceInBytesOnDevice,
12768            bufferOnHost,
12769            workspaceInBytesOnHost,
12770            info,
12771            batchSize,
12772        )
12773    }
12774    #[cfg(any(
12775        feature = "cuda-12060",
12776        feature = "cuda-12080",
12777        feature = "cuda-12090",
12778        feature = "cuda-13000",
12779        feature = "cuda-13010"
12780    ))]
12781    pub unsafe fn cusolverDnXsyevBatched_bufferSize(
12782        handle: cusolverDnHandle_t,
12783        params: cusolverDnParams_t,
12784        jobz: cusolverEigMode_t,
12785        uplo: cublasFillMode_t,
12786        n: i64,
12787        dataTypeA: cudaDataType,
12788        A: *const ::core::ffi::c_void,
12789        lda: i64,
12790        dataTypeW: cudaDataType,
12791        W: *const ::core::ffi::c_void,
12792        computeType: cudaDataType,
12793        workspaceInBytesOnDevice: *mut usize,
12794        workspaceInBytesOnHost: *mut usize,
12795        batchSize: i64,
12796    ) -> cusolverStatus_t {
12797        (culib().cusolverDnXsyevBatched_bufferSize)(
12798            handle,
12799            params,
12800            jobz,
12801            uplo,
12802            n,
12803            dataTypeA,
12804            A,
12805            lda,
12806            dataTypeW,
12807            W,
12808            computeType,
12809            workspaceInBytesOnDevice,
12810            workspaceInBytesOnHost,
12811            batchSize,
12812        )
12813    }
12814    pub unsafe fn cusolverDnXsyevd(
12815        handle: cusolverDnHandle_t,
12816        params: cusolverDnParams_t,
12817        jobz: cusolverEigMode_t,
12818        uplo: cublasFillMode_t,
12819        n: i64,
12820        dataTypeA: cudaDataType,
12821        A: *mut ::core::ffi::c_void,
12822        lda: i64,
12823        dataTypeW: cudaDataType,
12824        W: *mut ::core::ffi::c_void,
12825        computeType: cudaDataType,
12826        bufferOnDevice: *mut ::core::ffi::c_void,
12827        workspaceInBytesOnDevice: usize,
12828        bufferOnHost: *mut ::core::ffi::c_void,
12829        workspaceInBytesOnHost: usize,
12830        info: *mut ::core::ffi::c_int,
12831    ) -> cusolverStatus_t {
12832        (culib().cusolverDnXsyevd)(
12833            handle,
12834            params,
12835            jobz,
12836            uplo,
12837            n,
12838            dataTypeA,
12839            A,
12840            lda,
12841            dataTypeW,
12842            W,
12843            computeType,
12844            bufferOnDevice,
12845            workspaceInBytesOnDevice,
12846            bufferOnHost,
12847            workspaceInBytesOnHost,
12848            info,
12849        )
12850    }
12851    pub unsafe fn cusolverDnXsyevd_bufferSize(
12852        handle: cusolverDnHandle_t,
12853        params: cusolverDnParams_t,
12854        jobz: cusolverEigMode_t,
12855        uplo: cublasFillMode_t,
12856        n: i64,
12857        dataTypeA: cudaDataType,
12858        A: *const ::core::ffi::c_void,
12859        lda: i64,
12860        dataTypeW: cudaDataType,
12861        W: *const ::core::ffi::c_void,
12862        computeType: cudaDataType,
12863        workspaceInBytesOnDevice: *mut usize,
12864        workspaceInBytesOnHost: *mut usize,
12865    ) -> cusolverStatus_t {
12866        (culib().cusolverDnXsyevd_bufferSize)(
12867            handle,
12868            params,
12869            jobz,
12870            uplo,
12871            n,
12872            dataTypeA,
12873            A,
12874            lda,
12875            dataTypeW,
12876            W,
12877            computeType,
12878            workspaceInBytesOnDevice,
12879            workspaceInBytesOnHost,
12880        )
12881    }
12882    pub unsafe fn cusolverDnXsyevdx(
12883        handle: cusolverDnHandle_t,
12884        params: cusolverDnParams_t,
12885        jobz: cusolverEigMode_t,
12886        range: cusolverEigRange_t,
12887        uplo: cublasFillMode_t,
12888        n: i64,
12889        dataTypeA: cudaDataType,
12890        A: *mut ::core::ffi::c_void,
12891        lda: i64,
12892        vl: *mut ::core::ffi::c_void,
12893        vu: *mut ::core::ffi::c_void,
12894        il: i64,
12895        iu: i64,
12896        meig64: *mut i64,
12897        dataTypeW: cudaDataType,
12898        W: *mut ::core::ffi::c_void,
12899        computeType: cudaDataType,
12900        bufferOnDevice: *mut ::core::ffi::c_void,
12901        workspaceInBytesOnDevice: usize,
12902        bufferOnHost: *mut ::core::ffi::c_void,
12903        workspaceInBytesOnHost: usize,
12904        info: *mut ::core::ffi::c_int,
12905    ) -> cusolverStatus_t {
12906        (culib().cusolverDnXsyevdx)(
12907            handle,
12908            params,
12909            jobz,
12910            range,
12911            uplo,
12912            n,
12913            dataTypeA,
12914            A,
12915            lda,
12916            vl,
12917            vu,
12918            il,
12919            iu,
12920            meig64,
12921            dataTypeW,
12922            W,
12923            computeType,
12924            bufferOnDevice,
12925            workspaceInBytesOnDevice,
12926            bufferOnHost,
12927            workspaceInBytesOnHost,
12928            info,
12929        )
12930    }
12931    pub unsafe fn cusolverDnXsyevdx_bufferSize(
12932        handle: cusolverDnHandle_t,
12933        params: cusolverDnParams_t,
12934        jobz: cusolverEigMode_t,
12935        range: cusolverEigRange_t,
12936        uplo: cublasFillMode_t,
12937        n: i64,
12938        dataTypeA: cudaDataType,
12939        A: *const ::core::ffi::c_void,
12940        lda: i64,
12941        vl: *mut ::core::ffi::c_void,
12942        vu: *mut ::core::ffi::c_void,
12943        il: i64,
12944        iu: i64,
12945        h_meig: *mut i64,
12946        dataTypeW: cudaDataType,
12947        W: *const ::core::ffi::c_void,
12948        computeType: cudaDataType,
12949        workspaceInBytesOnDevice: *mut usize,
12950        workspaceInBytesOnHost: *mut usize,
12951    ) -> cusolverStatus_t {
12952        (culib().cusolverDnXsyevdx_bufferSize)(
12953            handle,
12954            params,
12955            jobz,
12956            range,
12957            uplo,
12958            n,
12959            dataTypeA,
12960            A,
12961            lda,
12962            vl,
12963            vu,
12964            il,
12965            iu,
12966            h_meig,
12967            dataTypeW,
12968            W,
12969            computeType,
12970            workspaceInBytesOnDevice,
12971            workspaceInBytesOnHost,
12972        )
12973    }
12974    pub unsafe fn cusolverDnXsyevjGetResidual(
12975        handle: cusolverDnHandle_t,
12976        info: syevjInfo_t,
12977        residual: *mut f64,
12978    ) -> cusolverStatus_t {
12979        (culib().cusolverDnXsyevjGetResidual)(handle, info, residual)
12980    }
12981    pub unsafe fn cusolverDnXsyevjGetSweeps(
12982        handle: cusolverDnHandle_t,
12983        info: syevjInfo_t,
12984        executed_sweeps: *mut ::core::ffi::c_int,
12985    ) -> cusolverStatus_t {
12986        (culib().cusolverDnXsyevjGetSweeps)(handle, info, executed_sweeps)
12987    }
12988    pub unsafe fn cusolverDnXsyevjSetMaxSweeps(
12989        info: syevjInfo_t,
12990        max_sweeps: ::core::ffi::c_int,
12991    ) -> cusolverStatus_t {
12992        (culib().cusolverDnXsyevjSetMaxSweeps)(info, max_sweeps)
12993    }
12994    pub unsafe fn cusolverDnXsyevjSetSortEig(
12995        info: syevjInfo_t,
12996        sort_eig: ::core::ffi::c_int,
12997    ) -> cusolverStatus_t {
12998        (culib().cusolverDnXsyevjSetSortEig)(info, sort_eig)
12999    }
13000    pub unsafe fn cusolverDnXsyevjSetTolerance(
13001        info: syevjInfo_t,
13002        tolerance: f64,
13003    ) -> cusolverStatus_t {
13004        (culib().cusolverDnXsyevjSetTolerance)(info, tolerance)
13005    }
13006    pub unsafe fn cusolverDnXsytrs(
13007        handle: cusolverDnHandle_t,
13008        uplo: cublasFillMode_t,
13009        n: i64,
13010        nrhs: i64,
13011        dataTypeA: cudaDataType,
13012        A: *const ::core::ffi::c_void,
13013        lda: i64,
13014        ipiv: *const i64,
13015        dataTypeB: cudaDataType,
13016        B: *mut ::core::ffi::c_void,
13017        ldb: i64,
13018        bufferOnDevice: *mut ::core::ffi::c_void,
13019        workspaceInBytesOnDevice: usize,
13020        bufferOnHost: *mut ::core::ffi::c_void,
13021        workspaceInBytesOnHost: usize,
13022        info: *mut ::core::ffi::c_int,
13023    ) -> cusolverStatus_t {
13024        (culib().cusolverDnXsytrs)(
13025            handle,
13026            uplo,
13027            n,
13028            nrhs,
13029            dataTypeA,
13030            A,
13031            lda,
13032            ipiv,
13033            dataTypeB,
13034            B,
13035            ldb,
13036            bufferOnDevice,
13037            workspaceInBytesOnDevice,
13038            bufferOnHost,
13039            workspaceInBytesOnHost,
13040            info,
13041        )
13042    }
13043    pub unsafe fn cusolverDnXsytrs_bufferSize(
13044        handle: cusolverDnHandle_t,
13045        uplo: cublasFillMode_t,
13046        n: i64,
13047        nrhs: i64,
13048        dataTypeA: cudaDataType,
13049        A: *const ::core::ffi::c_void,
13050        lda: i64,
13051        ipiv: *const i64,
13052        dataTypeB: cudaDataType,
13053        B: *mut ::core::ffi::c_void,
13054        ldb: i64,
13055        workspaceInBytesOnDevice: *mut usize,
13056        workspaceInBytesOnHost: *mut usize,
13057    ) -> cusolverStatus_t {
13058        (culib().cusolverDnXsytrs_bufferSize)(
13059            handle,
13060            uplo,
13061            n,
13062            nrhs,
13063            dataTypeA,
13064            A,
13065            lda,
13066            ipiv,
13067            dataTypeB,
13068            B,
13069            ldb,
13070            workspaceInBytesOnDevice,
13071            workspaceInBytesOnHost,
13072        )
13073    }
13074    pub unsafe fn cusolverDnXtrtri(
13075        handle: cusolverDnHandle_t,
13076        uplo: cublasFillMode_t,
13077        diag: cublasDiagType_t,
13078        n: i64,
13079        dataTypeA: cudaDataType,
13080        A: *mut ::core::ffi::c_void,
13081        lda: i64,
13082        bufferOnDevice: *mut ::core::ffi::c_void,
13083        workspaceInBytesOnDevice: usize,
13084        bufferOnHost: *mut ::core::ffi::c_void,
13085        workspaceInBytesOnHost: usize,
13086        devInfo: *mut ::core::ffi::c_int,
13087    ) -> cusolverStatus_t {
13088        (culib().cusolverDnXtrtri)(
13089            handle,
13090            uplo,
13091            diag,
13092            n,
13093            dataTypeA,
13094            A,
13095            lda,
13096            bufferOnDevice,
13097            workspaceInBytesOnDevice,
13098            bufferOnHost,
13099            workspaceInBytesOnHost,
13100            devInfo,
13101        )
13102    }
13103    pub unsafe fn cusolverDnXtrtri_bufferSize(
13104        handle: cusolverDnHandle_t,
13105        uplo: cublasFillMode_t,
13106        diag: cublasDiagType_t,
13107        n: i64,
13108        dataTypeA: cudaDataType,
13109        A: *mut ::core::ffi::c_void,
13110        lda: i64,
13111        workspaceInBytesOnDevice: *mut usize,
13112        workspaceInBytesOnHost: *mut usize,
13113    ) -> cusolverStatus_t {
13114        (culib().cusolverDnXtrtri_bufferSize)(
13115            handle,
13116            uplo,
13117            diag,
13118            n,
13119            dataTypeA,
13120            A,
13121            lda,
13122            workspaceInBytesOnDevice,
13123            workspaceInBytesOnHost,
13124        )
13125    }
13126    pub unsafe fn cusolverDnZCgels(
13127        handle: cusolverDnHandle_t,
13128        m: cusolver_int_t,
13129        n: cusolver_int_t,
13130        nrhs: cusolver_int_t,
13131        dA: *mut cuDoubleComplex,
13132        ldda: cusolver_int_t,
13133        dB: *mut cuDoubleComplex,
13134        lddb: cusolver_int_t,
13135        dX: *mut cuDoubleComplex,
13136        lddx: cusolver_int_t,
13137        dWorkspace: *mut ::core::ffi::c_void,
13138        lwork_bytes: usize,
13139        iter: *mut cusolver_int_t,
13140        d_info: *mut cusolver_int_t,
13141    ) -> cusolverStatus_t {
13142        (culib().cusolverDnZCgels)(
13143            handle,
13144            m,
13145            n,
13146            nrhs,
13147            dA,
13148            ldda,
13149            dB,
13150            lddb,
13151            dX,
13152            lddx,
13153            dWorkspace,
13154            lwork_bytes,
13155            iter,
13156            d_info,
13157        )
13158    }
13159    pub unsafe fn cusolverDnZCgels_bufferSize(
13160        handle: cusolverDnHandle_t,
13161        m: cusolver_int_t,
13162        n: cusolver_int_t,
13163        nrhs: cusolver_int_t,
13164        dA: *mut cuDoubleComplex,
13165        ldda: cusolver_int_t,
13166        dB: *mut cuDoubleComplex,
13167        lddb: cusolver_int_t,
13168        dX: *mut cuDoubleComplex,
13169        lddx: cusolver_int_t,
13170        dWorkspace: *mut ::core::ffi::c_void,
13171        lwork_bytes: *mut usize,
13172    ) -> cusolverStatus_t {
13173        (culib().cusolverDnZCgels_bufferSize)(
13174            handle,
13175            m,
13176            n,
13177            nrhs,
13178            dA,
13179            ldda,
13180            dB,
13181            lddb,
13182            dX,
13183            lddx,
13184            dWorkspace,
13185            lwork_bytes,
13186        )
13187    }
13188    pub unsafe fn cusolverDnZCgesv(
13189        handle: cusolverDnHandle_t,
13190        n: cusolver_int_t,
13191        nrhs: cusolver_int_t,
13192        dA: *mut cuDoubleComplex,
13193        ldda: cusolver_int_t,
13194        dipiv: *mut cusolver_int_t,
13195        dB: *mut cuDoubleComplex,
13196        lddb: cusolver_int_t,
13197        dX: *mut cuDoubleComplex,
13198        lddx: cusolver_int_t,
13199        dWorkspace: *mut ::core::ffi::c_void,
13200        lwork_bytes: usize,
13201        iter: *mut cusolver_int_t,
13202        d_info: *mut cusolver_int_t,
13203    ) -> cusolverStatus_t {
13204        (culib().cusolverDnZCgesv)(
13205            handle,
13206            n,
13207            nrhs,
13208            dA,
13209            ldda,
13210            dipiv,
13211            dB,
13212            lddb,
13213            dX,
13214            lddx,
13215            dWorkspace,
13216            lwork_bytes,
13217            iter,
13218            d_info,
13219        )
13220    }
13221    pub unsafe fn cusolverDnZCgesv_bufferSize(
13222        handle: cusolverDnHandle_t,
13223        n: cusolver_int_t,
13224        nrhs: cusolver_int_t,
13225        dA: *mut cuDoubleComplex,
13226        ldda: cusolver_int_t,
13227        dipiv: *mut cusolver_int_t,
13228        dB: *mut cuDoubleComplex,
13229        lddb: cusolver_int_t,
13230        dX: *mut cuDoubleComplex,
13231        lddx: cusolver_int_t,
13232        dWorkspace: *mut ::core::ffi::c_void,
13233        lwork_bytes: *mut usize,
13234    ) -> cusolverStatus_t {
13235        (culib().cusolverDnZCgesv_bufferSize)(
13236            handle,
13237            n,
13238            nrhs,
13239            dA,
13240            ldda,
13241            dipiv,
13242            dB,
13243            lddb,
13244            dX,
13245            lddx,
13246            dWorkspace,
13247            lwork_bytes,
13248        )
13249    }
13250    pub unsafe fn cusolverDnZEgels(
13251        handle: cusolverDnHandle_t,
13252        m: cusolver_int_t,
13253        n: cusolver_int_t,
13254        nrhs: cusolver_int_t,
13255        dA: *mut cuDoubleComplex,
13256        ldda: cusolver_int_t,
13257        dB: *mut cuDoubleComplex,
13258        lddb: cusolver_int_t,
13259        dX: *mut cuDoubleComplex,
13260        lddx: cusolver_int_t,
13261        dWorkspace: *mut ::core::ffi::c_void,
13262        lwork_bytes: usize,
13263        iter: *mut cusolver_int_t,
13264        d_info: *mut cusolver_int_t,
13265    ) -> cusolverStatus_t {
13266        (culib().cusolverDnZEgels)(
13267            handle,
13268            m,
13269            n,
13270            nrhs,
13271            dA,
13272            ldda,
13273            dB,
13274            lddb,
13275            dX,
13276            lddx,
13277            dWorkspace,
13278            lwork_bytes,
13279            iter,
13280            d_info,
13281        )
13282    }
13283    pub unsafe fn cusolverDnZEgels_bufferSize(
13284        handle: cusolverDnHandle_t,
13285        m: cusolver_int_t,
13286        n: cusolver_int_t,
13287        nrhs: cusolver_int_t,
13288        dA: *mut cuDoubleComplex,
13289        ldda: cusolver_int_t,
13290        dB: *mut cuDoubleComplex,
13291        lddb: cusolver_int_t,
13292        dX: *mut cuDoubleComplex,
13293        lddx: cusolver_int_t,
13294        dWorkspace: *mut ::core::ffi::c_void,
13295        lwork_bytes: *mut usize,
13296    ) -> cusolverStatus_t {
13297        (culib().cusolverDnZEgels_bufferSize)(
13298            handle,
13299            m,
13300            n,
13301            nrhs,
13302            dA,
13303            ldda,
13304            dB,
13305            lddb,
13306            dX,
13307            lddx,
13308            dWorkspace,
13309            lwork_bytes,
13310        )
13311    }
13312    pub unsafe fn cusolverDnZEgesv(
13313        handle: cusolverDnHandle_t,
13314        n: cusolver_int_t,
13315        nrhs: cusolver_int_t,
13316        dA: *mut cuDoubleComplex,
13317        ldda: cusolver_int_t,
13318        dipiv: *mut cusolver_int_t,
13319        dB: *mut cuDoubleComplex,
13320        lddb: cusolver_int_t,
13321        dX: *mut cuDoubleComplex,
13322        lddx: cusolver_int_t,
13323        dWorkspace: *mut ::core::ffi::c_void,
13324        lwork_bytes: usize,
13325        iter: *mut cusolver_int_t,
13326        d_info: *mut cusolver_int_t,
13327    ) -> cusolverStatus_t {
13328        (culib().cusolverDnZEgesv)(
13329            handle,
13330            n,
13331            nrhs,
13332            dA,
13333            ldda,
13334            dipiv,
13335            dB,
13336            lddb,
13337            dX,
13338            lddx,
13339            dWorkspace,
13340            lwork_bytes,
13341            iter,
13342            d_info,
13343        )
13344    }
13345    pub unsafe fn cusolverDnZEgesv_bufferSize(
13346        handle: cusolverDnHandle_t,
13347        n: cusolver_int_t,
13348        nrhs: cusolver_int_t,
13349        dA: *mut cuDoubleComplex,
13350        ldda: cusolver_int_t,
13351        dipiv: *mut cusolver_int_t,
13352        dB: *mut cuDoubleComplex,
13353        lddb: cusolver_int_t,
13354        dX: *mut cuDoubleComplex,
13355        lddx: cusolver_int_t,
13356        dWorkspace: *mut ::core::ffi::c_void,
13357        lwork_bytes: *mut usize,
13358    ) -> cusolverStatus_t {
13359        (culib().cusolverDnZEgesv_bufferSize)(
13360            handle,
13361            n,
13362            nrhs,
13363            dA,
13364            ldda,
13365            dipiv,
13366            dB,
13367            lddb,
13368            dX,
13369            lddx,
13370            dWorkspace,
13371            lwork_bytes,
13372        )
13373    }
13374    pub unsafe fn cusolverDnZKgels(
13375        handle: cusolverDnHandle_t,
13376        m: cusolver_int_t,
13377        n: cusolver_int_t,
13378        nrhs: cusolver_int_t,
13379        dA: *mut cuDoubleComplex,
13380        ldda: cusolver_int_t,
13381        dB: *mut cuDoubleComplex,
13382        lddb: cusolver_int_t,
13383        dX: *mut cuDoubleComplex,
13384        lddx: cusolver_int_t,
13385        dWorkspace: *mut ::core::ffi::c_void,
13386        lwork_bytes: usize,
13387        iter: *mut cusolver_int_t,
13388        d_info: *mut cusolver_int_t,
13389    ) -> cusolverStatus_t {
13390        (culib().cusolverDnZKgels)(
13391            handle,
13392            m,
13393            n,
13394            nrhs,
13395            dA,
13396            ldda,
13397            dB,
13398            lddb,
13399            dX,
13400            lddx,
13401            dWorkspace,
13402            lwork_bytes,
13403            iter,
13404            d_info,
13405        )
13406    }
13407    pub unsafe fn cusolverDnZKgels_bufferSize(
13408        handle: cusolverDnHandle_t,
13409        m: cusolver_int_t,
13410        n: cusolver_int_t,
13411        nrhs: cusolver_int_t,
13412        dA: *mut cuDoubleComplex,
13413        ldda: cusolver_int_t,
13414        dB: *mut cuDoubleComplex,
13415        lddb: cusolver_int_t,
13416        dX: *mut cuDoubleComplex,
13417        lddx: cusolver_int_t,
13418        dWorkspace: *mut ::core::ffi::c_void,
13419        lwork_bytes: *mut usize,
13420    ) -> cusolverStatus_t {
13421        (culib().cusolverDnZKgels_bufferSize)(
13422            handle,
13423            m,
13424            n,
13425            nrhs,
13426            dA,
13427            ldda,
13428            dB,
13429            lddb,
13430            dX,
13431            lddx,
13432            dWorkspace,
13433            lwork_bytes,
13434        )
13435    }
13436    pub unsafe fn cusolverDnZKgesv(
13437        handle: cusolverDnHandle_t,
13438        n: cusolver_int_t,
13439        nrhs: cusolver_int_t,
13440        dA: *mut cuDoubleComplex,
13441        ldda: cusolver_int_t,
13442        dipiv: *mut cusolver_int_t,
13443        dB: *mut cuDoubleComplex,
13444        lddb: cusolver_int_t,
13445        dX: *mut cuDoubleComplex,
13446        lddx: cusolver_int_t,
13447        dWorkspace: *mut ::core::ffi::c_void,
13448        lwork_bytes: usize,
13449        iter: *mut cusolver_int_t,
13450        d_info: *mut cusolver_int_t,
13451    ) -> cusolverStatus_t {
13452        (culib().cusolverDnZKgesv)(
13453            handle,
13454            n,
13455            nrhs,
13456            dA,
13457            ldda,
13458            dipiv,
13459            dB,
13460            lddb,
13461            dX,
13462            lddx,
13463            dWorkspace,
13464            lwork_bytes,
13465            iter,
13466            d_info,
13467        )
13468    }
13469    pub unsafe fn cusolverDnZKgesv_bufferSize(
13470        handle: cusolverDnHandle_t,
13471        n: cusolver_int_t,
13472        nrhs: cusolver_int_t,
13473        dA: *mut cuDoubleComplex,
13474        ldda: cusolver_int_t,
13475        dipiv: *mut cusolver_int_t,
13476        dB: *mut cuDoubleComplex,
13477        lddb: cusolver_int_t,
13478        dX: *mut cuDoubleComplex,
13479        lddx: cusolver_int_t,
13480        dWorkspace: *mut ::core::ffi::c_void,
13481        lwork_bytes: *mut usize,
13482    ) -> cusolverStatus_t {
13483        (culib().cusolverDnZKgesv_bufferSize)(
13484            handle,
13485            n,
13486            nrhs,
13487            dA,
13488            ldda,
13489            dipiv,
13490            dB,
13491            lddb,
13492            dX,
13493            lddx,
13494            dWorkspace,
13495            lwork_bytes,
13496        )
13497    }
13498    pub unsafe fn cusolverDnZYgels(
13499        handle: cusolverDnHandle_t,
13500        m: cusolver_int_t,
13501        n: cusolver_int_t,
13502        nrhs: cusolver_int_t,
13503        dA: *mut cuDoubleComplex,
13504        ldda: cusolver_int_t,
13505        dB: *mut cuDoubleComplex,
13506        lddb: cusolver_int_t,
13507        dX: *mut cuDoubleComplex,
13508        lddx: cusolver_int_t,
13509        dWorkspace: *mut ::core::ffi::c_void,
13510        lwork_bytes: usize,
13511        iter: *mut cusolver_int_t,
13512        d_info: *mut cusolver_int_t,
13513    ) -> cusolverStatus_t {
13514        (culib().cusolverDnZYgels)(
13515            handle,
13516            m,
13517            n,
13518            nrhs,
13519            dA,
13520            ldda,
13521            dB,
13522            lddb,
13523            dX,
13524            lddx,
13525            dWorkspace,
13526            lwork_bytes,
13527            iter,
13528            d_info,
13529        )
13530    }
13531    pub unsafe fn cusolverDnZYgels_bufferSize(
13532        handle: cusolverDnHandle_t,
13533        m: cusolver_int_t,
13534        n: cusolver_int_t,
13535        nrhs: cusolver_int_t,
13536        dA: *mut cuDoubleComplex,
13537        ldda: cusolver_int_t,
13538        dB: *mut cuDoubleComplex,
13539        lddb: cusolver_int_t,
13540        dX: *mut cuDoubleComplex,
13541        lddx: cusolver_int_t,
13542        dWorkspace: *mut ::core::ffi::c_void,
13543        lwork_bytes: *mut usize,
13544    ) -> cusolverStatus_t {
13545        (culib().cusolverDnZYgels_bufferSize)(
13546            handle,
13547            m,
13548            n,
13549            nrhs,
13550            dA,
13551            ldda,
13552            dB,
13553            lddb,
13554            dX,
13555            lddx,
13556            dWorkspace,
13557            lwork_bytes,
13558        )
13559    }
13560    pub unsafe fn cusolverDnZYgesv(
13561        handle: cusolverDnHandle_t,
13562        n: cusolver_int_t,
13563        nrhs: cusolver_int_t,
13564        dA: *mut cuDoubleComplex,
13565        ldda: cusolver_int_t,
13566        dipiv: *mut cusolver_int_t,
13567        dB: *mut cuDoubleComplex,
13568        lddb: cusolver_int_t,
13569        dX: *mut cuDoubleComplex,
13570        lddx: cusolver_int_t,
13571        dWorkspace: *mut ::core::ffi::c_void,
13572        lwork_bytes: usize,
13573        iter: *mut cusolver_int_t,
13574        d_info: *mut cusolver_int_t,
13575    ) -> cusolverStatus_t {
13576        (culib().cusolverDnZYgesv)(
13577            handle,
13578            n,
13579            nrhs,
13580            dA,
13581            ldda,
13582            dipiv,
13583            dB,
13584            lddb,
13585            dX,
13586            lddx,
13587            dWorkspace,
13588            lwork_bytes,
13589            iter,
13590            d_info,
13591        )
13592    }
13593    pub unsafe fn cusolverDnZYgesv_bufferSize(
13594        handle: cusolverDnHandle_t,
13595        n: cusolver_int_t,
13596        nrhs: cusolver_int_t,
13597        dA: *mut cuDoubleComplex,
13598        ldda: cusolver_int_t,
13599        dipiv: *mut cusolver_int_t,
13600        dB: *mut cuDoubleComplex,
13601        lddb: cusolver_int_t,
13602        dX: *mut cuDoubleComplex,
13603        lddx: cusolver_int_t,
13604        dWorkspace: *mut ::core::ffi::c_void,
13605        lwork_bytes: *mut usize,
13606    ) -> cusolverStatus_t {
13607        (culib().cusolverDnZYgesv_bufferSize)(
13608            handle,
13609            n,
13610            nrhs,
13611            dA,
13612            ldda,
13613            dipiv,
13614            dB,
13615            lddb,
13616            dX,
13617            lddx,
13618            dWorkspace,
13619            lwork_bytes,
13620        )
13621    }
13622    pub unsafe fn cusolverDnZZgels(
13623        handle: cusolverDnHandle_t,
13624        m: cusolver_int_t,
13625        n: cusolver_int_t,
13626        nrhs: cusolver_int_t,
13627        dA: *mut cuDoubleComplex,
13628        ldda: cusolver_int_t,
13629        dB: *mut cuDoubleComplex,
13630        lddb: cusolver_int_t,
13631        dX: *mut cuDoubleComplex,
13632        lddx: cusolver_int_t,
13633        dWorkspace: *mut ::core::ffi::c_void,
13634        lwork_bytes: usize,
13635        iter: *mut cusolver_int_t,
13636        d_info: *mut cusolver_int_t,
13637    ) -> cusolverStatus_t {
13638        (culib().cusolverDnZZgels)(
13639            handle,
13640            m,
13641            n,
13642            nrhs,
13643            dA,
13644            ldda,
13645            dB,
13646            lddb,
13647            dX,
13648            lddx,
13649            dWorkspace,
13650            lwork_bytes,
13651            iter,
13652            d_info,
13653        )
13654    }
13655    pub unsafe fn cusolverDnZZgels_bufferSize(
13656        handle: cusolverDnHandle_t,
13657        m: cusolver_int_t,
13658        n: cusolver_int_t,
13659        nrhs: cusolver_int_t,
13660        dA: *mut cuDoubleComplex,
13661        ldda: cusolver_int_t,
13662        dB: *mut cuDoubleComplex,
13663        lddb: cusolver_int_t,
13664        dX: *mut cuDoubleComplex,
13665        lddx: cusolver_int_t,
13666        dWorkspace: *mut ::core::ffi::c_void,
13667        lwork_bytes: *mut usize,
13668    ) -> cusolverStatus_t {
13669        (culib().cusolverDnZZgels_bufferSize)(
13670            handle,
13671            m,
13672            n,
13673            nrhs,
13674            dA,
13675            ldda,
13676            dB,
13677            lddb,
13678            dX,
13679            lddx,
13680            dWorkspace,
13681            lwork_bytes,
13682        )
13683    }
13684    pub unsafe fn cusolverDnZZgesv(
13685        handle: cusolverDnHandle_t,
13686        n: cusolver_int_t,
13687        nrhs: cusolver_int_t,
13688        dA: *mut cuDoubleComplex,
13689        ldda: cusolver_int_t,
13690        dipiv: *mut cusolver_int_t,
13691        dB: *mut cuDoubleComplex,
13692        lddb: cusolver_int_t,
13693        dX: *mut cuDoubleComplex,
13694        lddx: cusolver_int_t,
13695        dWorkspace: *mut ::core::ffi::c_void,
13696        lwork_bytes: usize,
13697        iter: *mut cusolver_int_t,
13698        d_info: *mut cusolver_int_t,
13699    ) -> cusolverStatus_t {
13700        (culib().cusolverDnZZgesv)(
13701            handle,
13702            n,
13703            nrhs,
13704            dA,
13705            ldda,
13706            dipiv,
13707            dB,
13708            lddb,
13709            dX,
13710            lddx,
13711            dWorkspace,
13712            lwork_bytes,
13713            iter,
13714            d_info,
13715        )
13716    }
13717    pub unsafe fn cusolverDnZZgesv_bufferSize(
13718        handle: cusolverDnHandle_t,
13719        n: cusolver_int_t,
13720        nrhs: cusolver_int_t,
13721        dA: *mut cuDoubleComplex,
13722        ldda: cusolver_int_t,
13723        dipiv: *mut cusolver_int_t,
13724        dB: *mut cuDoubleComplex,
13725        lddb: cusolver_int_t,
13726        dX: *mut cuDoubleComplex,
13727        lddx: cusolver_int_t,
13728        dWorkspace: *mut ::core::ffi::c_void,
13729        lwork_bytes: *mut usize,
13730    ) -> cusolverStatus_t {
13731        (culib().cusolverDnZZgesv_bufferSize)(
13732            handle,
13733            n,
13734            nrhs,
13735            dA,
13736            ldda,
13737            dipiv,
13738            dB,
13739            lddb,
13740            dX,
13741            lddx,
13742            dWorkspace,
13743            lwork_bytes,
13744        )
13745    }
13746    pub unsafe fn cusolverDnZgebrd(
13747        handle: cusolverDnHandle_t,
13748        m: ::core::ffi::c_int,
13749        n: ::core::ffi::c_int,
13750        A: *mut cuDoubleComplex,
13751        lda: ::core::ffi::c_int,
13752        D: *mut f64,
13753        E: *mut f64,
13754        TAUQ: *mut cuDoubleComplex,
13755        TAUP: *mut cuDoubleComplex,
13756        Work: *mut cuDoubleComplex,
13757        Lwork: ::core::ffi::c_int,
13758        devInfo: *mut ::core::ffi::c_int,
13759    ) -> cusolverStatus_t {
13760        (culib().cusolverDnZgebrd)(handle, m, n, A, lda, D, E, TAUQ, TAUP, Work, Lwork, devInfo)
13761    }
13762    pub unsafe fn cusolverDnZgebrd_bufferSize(
13763        handle: cusolverDnHandle_t,
13764        m: ::core::ffi::c_int,
13765        n: ::core::ffi::c_int,
13766        Lwork: *mut ::core::ffi::c_int,
13767    ) -> cusolverStatus_t {
13768        (culib().cusolverDnZgebrd_bufferSize)(handle, m, n, Lwork)
13769    }
13770    pub unsafe fn cusolverDnZgeqrf(
13771        handle: cusolverDnHandle_t,
13772        m: ::core::ffi::c_int,
13773        n: ::core::ffi::c_int,
13774        A: *mut cuDoubleComplex,
13775        lda: ::core::ffi::c_int,
13776        TAU: *mut cuDoubleComplex,
13777        Workspace: *mut cuDoubleComplex,
13778        Lwork: ::core::ffi::c_int,
13779        devInfo: *mut ::core::ffi::c_int,
13780    ) -> cusolverStatus_t {
13781        (culib().cusolverDnZgeqrf)(handle, m, n, A, lda, TAU, Workspace, Lwork, devInfo)
13782    }
13783    pub unsafe fn cusolverDnZgeqrf_bufferSize(
13784        handle: cusolverDnHandle_t,
13785        m: ::core::ffi::c_int,
13786        n: ::core::ffi::c_int,
13787        A: *mut cuDoubleComplex,
13788        lda: ::core::ffi::c_int,
13789        lwork: *mut ::core::ffi::c_int,
13790    ) -> cusolverStatus_t {
13791        (culib().cusolverDnZgeqrf_bufferSize)(handle, m, n, A, lda, lwork)
13792    }
13793    pub unsafe fn cusolverDnZgesvd(
13794        handle: cusolverDnHandle_t,
13795        jobu: ::core::ffi::c_schar,
13796        jobvt: ::core::ffi::c_schar,
13797        m: ::core::ffi::c_int,
13798        n: ::core::ffi::c_int,
13799        A: *mut cuDoubleComplex,
13800        lda: ::core::ffi::c_int,
13801        S: *mut f64,
13802        U: *mut cuDoubleComplex,
13803        ldu: ::core::ffi::c_int,
13804        VT: *mut cuDoubleComplex,
13805        ldvt: ::core::ffi::c_int,
13806        work: *mut cuDoubleComplex,
13807        lwork: ::core::ffi::c_int,
13808        rwork: *mut f64,
13809        info: *mut ::core::ffi::c_int,
13810    ) -> cusolverStatus_t {
13811        (culib().cusolverDnZgesvd)(
13812            handle, jobu, jobvt, m, n, A, lda, S, U, ldu, VT, ldvt, work, lwork, rwork, info,
13813        )
13814    }
13815    pub unsafe fn cusolverDnZgesvd_bufferSize(
13816        handle: cusolverDnHandle_t,
13817        m: ::core::ffi::c_int,
13818        n: ::core::ffi::c_int,
13819        lwork: *mut ::core::ffi::c_int,
13820    ) -> cusolverStatus_t {
13821        (culib().cusolverDnZgesvd_bufferSize)(handle, m, n, lwork)
13822    }
13823    pub unsafe fn cusolverDnZgesvdaStridedBatched(
13824        handle: cusolverDnHandle_t,
13825        jobz: cusolverEigMode_t,
13826        rank: ::core::ffi::c_int,
13827        m: ::core::ffi::c_int,
13828        n: ::core::ffi::c_int,
13829        d_A: *const cuDoubleComplex,
13830        lda: ::core::ffi::c_int,
13831        strideA: ::core::ffi::c_longlong,
13832        d_S: *mut f64,
13833        strideS: ::core::ffi::c_longlong,
13834        d_U: *mut cuDoubleComplex,
13835        ldu: ::core::ffi::c_int,
13836        strideU: ::core::ffi::c_longlong,
13837        d_V: *mut cuDoubleComplex,
13838        ldv: ::core::ffi::c_int,
13839        strideV: ::core::ffi::c_longlong,
13840        d_work: *mut cuDoubleComplex,
13841        lwork: ::core::ffi::c_int,
13842        d_info: *mut ::core::ffi::c_int,
13843        h_R_nrmF: *mut f64,
13844        batchSize: ::core::ffi::c_int,
13845    ) -> cusolverStatus_t {
13846        (culib().cusolverDnZgesvdaStridedBatched)(
13847            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
13848            strideV, d_work, lwork, d_info, h_R_nrmF, batchSize,
13849        )
13850    }
13851    pub unsafe fn cusolverDnZgesvdaStridedBatched_bufferSize(
13852        handle: cusolverDnHandle_t,
13853        jobz: cusolverEigMode_t,
13854        rank: ::core::ffi::c_int,
13855        m: ::core::ffi::c_int,
13856        n: ::core::ffi::c_int,
13857        d_A: *const cuDoubleComplex,
13858        lda: ::core::ffi::c_int,
13859        strideA: ::core::ffi::c_longlong,
13860        d_S: *const f64,
13861        strideS: ::core::ffi::c_longlong,
13862        d_U: *const cuDoubleComplex,
13863        ldu: ::core::ffi::c_int,
13864        strideU: ::core::ffi::c_longlong,
13865        d_V: *const cuDoubleComplex,
13866        ldv: ::core::ffi::c_int,
13867        strideV: ::core::ffi::c_longlong,
13868        lwork: *mut ::core::ffi::c_int,
13869        batchSize: ::core::ffi::c_int,
13870    ) -> cusolverStatus_t {
13871        (culib().cusolverDnZgesvdaStridedBatched_bufferSize)(
13872            handle, jobz, rank, m, n, d_A, lda, strideA, d_S, strideS, d_U, ldu, strideU, d_V, ldv,
13873            strideV, lwork, batchSize,
13874        )
13875    }
13876    pub unsafe fn cusolverDnZgesvdj(
13877        handle: cusolverDnHandle_t,
13878        jobz: cusolverEigMode_t,
13879        econ: ::core::ffi::c_int,
13880        m: ::core::ffi::c_int,
13881        n: ::core::ffi::c_int,
13882        A: *mut cuDoubleComplex,
13883        lda: ::core::ffi::c_int,
13884        S: *mut f64,
13885        U: *mut cuDoubleComplex,
13886        ldu: ::core::ffi::c_int,
13887        V: *mut cuDoubleComplex,
13888        ldv: ::core::ffi::c_int,
13889        work: *mut cuDoubleComplex,
13890        lwork: ::core::ffi::c_int,
13891        info: *mut ::core::ffi::c_int,
13892        params: gesvdjInfo_t,
13893    ) -> cusolverStatus_t {
13894        (culib().cusolverDnZgesvdj)(
13895            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params,
13896        )
13897    }
13898    pub unsafe fn cusolverDnZgesvdjBatched(
13899        handle: cusolverDnHandle_t,
13900        jobz: cusolverEigMode_t,
13901        m: ::core::ffi::c_int,
13902        n: ::core::ffi::c_int,
13903        A: *mut cuDoubleComplex,
13904        lda: ::core::ffi::c_int,
13905        S: *mut f64,
13906        U: *mut cuDoubleComplex,
13907        ldu: ::core::ffi::c_int,
13908        V: *mut cuDoubleComplex,
13909        ldv: ::core::ffi::c_int,
13910        work: *mut cuDoubleComplex,
13911        lwork: ::core::ffi::c_int,
13912        info: *mut ::core::ffi::c_int,
13913        params: gesvdjInfo_t,
13914        batchSize: ::core::ffi::c_int,
13915    ) -> cusolverStatus_t {
13916        (culib().cusolverDnZgesvdjBatched)(
13917            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, work, lwork, info, params, batchSize,
13918        )
13919    }
13920    pub unsafe fn cusolverDnZgesvdjBatched_bufferSize(
13921        handle: cusolverDnHandle_t,
13922        jobz: cusolverEigMode_t,
13923        m: ::core::ffi::c_int,
13924        n: ::core::ffi::c_int,
13925        A: *const cuDoubleComplex,
13926        lda: ::core::ffi::c_int,
13927        S: *const f64,
13928        U: *const cuDoubleComplex,
13929        ldu: ::core::ffi::c_int,
13930        V: *const cuDoubleComplex,
13931        ldv: ::core::ffi::c_int,
13932        lwork: *mut ::core::ffi::c_int,
13933        params: gesvdjInfo_t,
13934        batchSize: ::core::ffi::c_int,
13935    ) -> cusolverStatus_t {
13936        (culib().cusolverDnZgesvdjBatched_bufferSize)(
13937            handle, jobz, m, n, A, lda, S, U, ldu, V, ldv, lwork, params, batchSize,
13938        )
13939    }
13940    pub unsafe fn cusolverDnZgesvdj_bufferSize(
13941        handle: cusolverDnHandle_t,
13942        jobz: cusolverEigMode_t,
13943        econ: ::core::ffi::c_int,
13944        m: ::core::ffi::c_int,
13945        n: ::core::ffi::c_int,
13946        A: *const cuDoubleComplex,
13947        lda: ::core::ffi::c_int,
13948        S: *const f64,
13949        U: *const cuDoubleComplex,
13950        ldu: ::core::ffi::c_int,
13951        V: *const cuDoubleComplex,
13952        ldv: ::core::ffi::c_int,
13953        lwork: *mut ::core::ffi::c_int,
13954        params: gesvdjInfo_t,
13955    ) -> cusolverStatus_t {
13956        (culib().cusolverDnZgesvdj_bufferSize)(
13957            handle, jobz, econ, m, n, A, lda, S, U, ldu, V, ldv, lwork, params,
13958        )
13959    }
13960    pub unsafe fn cusolverDnZgetrf(
13961        handle: cusolverDnHandle_t,
13962        m: ::core::ffi::c_int,
13963        n: ::core::ffi::c_int,
13964        A: *mut cuDoubleComplex,
13965        lda: ::core::ffi::c_int,
13966        Workspace: *mut cuDoubleComplex,
13967        devIpiv: *mut ::core::ffi::c_int,
13968        devInfo: *mut ::core::ffi::c_int,
13969    ) -> cusolverStatus_t {
13970        (culib().cusolverDnZgetrf)(handle, m, n, A, lda, Workspace, devIpiv, devInfo)
13971    }
13972    pub unsafe fn cusolverDnZgetrf_bufferSize(
13973        handle: cusolverDnHandle_t,
13974        m: ::core::ffi::c_int,
13975        n: ::core::ffi::c_int,
13976        A: *mut cuDoubleComplex,
13977        lda: ::core::ffi::c_int,
13978        Lwork: *mut ::core::ffi::c_int,
13979    ) -> cusolverStatus_t {
13980        (culib().cusolverDnZgetrf_bufferSize)(handle, m, n, A, lda, Lwork)
13981    }
13982    pub unsafe fn cusolverDnZgetrs(
13983        handle: cusolverDnHandle_t,
13984        trans: cublasOperation_t,
13985        n: ::core::ffi::c_int,
13986        nrhs: ::core::ffi::c_int,
13987        A: *const cuDoubleComplex,
13988        lda: ::core::ffi::c_int,
13989        devIpiv: *const ::core::ffi::c_int,
13990        B: *mut cuDoubleComplex,
13991        ldb: ::core::ffi::c_int,
13992        devInfo: *mut ::core::ffi::c_int,
13993    ) -> cusolverStatus_t {
13994        (culib().cusolverDnZgetrs)(handle, trans, n, nrhs, A, lda, devIpiv, B, ldb, devInfo)
13995    }
13996    pub unsafe fn cusolverDnZheevd(
13997        handle: cusolverDnHandle_t,
13998        jobz: cusolverEigMode_t,
13999        uplo: cublasFillMode_t,
14000        n: ::core::ffi::c_int,
14001        A: *mut cuDoubleComplex,
14002        lda: ::core::ffi::c_int,
14003        W: *mut f64,
14004        work: *mut cuDoubleComplex,
14005        lwork: ::core::ffi::c_int,
14006        info: *mut ::core::ffi::c_int,
14007    ) -> cusolverStatus_t {
14008        (culib().cusolverDnZheevd)(handle, jobz, uplo, n, A, lda, W, work, lwork, info)
14009    }
14010    pub unsafe fn cusolverDnZheevd_bufferSize(
14011        handle: cusolverDnHandle_t,
14012        jobz: cusolverEigMode_t,
14013        uplo: cublasFillMode_t,
14014        n: ::core::ffi::c_int,
14015        A: *const cuDoubleComplex,
14016        lda: ::core::ffi::c_int,
14017        W: *const f64,
14018        lwork: *mut ::core::ffi::c_int,
14019    ) -> cusolverStatus_t {
14020        (culib().cusolverDnZheevd_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork)
14021    }
14022    pub unsafe fn cusolverDnZheevdx(
14023        handle: cusolverDnHandle_t,
14024        jobz: cusolverEigMode_t,
14025        range: cusolverEigRange_t,
14026        uplo: cublasFillMode_t,
14027        n: ::core::ffi::c_int,
14028        A: *mut cuDoubleComplex,
14029        lda: ::core::ffi::c_int,
14030        vl: f64,
14031        vu: f64,
14032        il: ::core::ffi::c_int,
14033        iu: ::core::ffi::c_int,
14034        meig: *mut ::core::ffi::c_int,
14035        W: *mut f64,
14036        work: *mut cuDoubleComplex,
14037        lwork: ::core::ffi::c_int,
14038        info: *mut ::core::ffi::c_int,
14039    ) -> cusolverStatus_t {
14040        (culib().cusolverDnZheevdx)(
14041            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, work, lwork, info,
14042        )
14043    }
14044    pub unsafe fn cusolverDnZheevdx_bufferSize(
14045        handle: cusolverDnHandle_t,
14046        jobz: cusolverEigMode_t,
14047        range: cusolverEigRange_t,
14048        uplo: cublasFillMode_t,
14049        n: ::core::ffi::c_int,
14050        A: *const cuDoubleComplex,
14051        lda: ::core::ffi::c_int,
14052        vl: f64,
14053        vu: f64,
14054        il: ::core::ffi::c_int,
14055        iu: ::core::ffi::c_int,
14056        meig: *mut ::core::ffi::c_int,
14057        W: *const f64,
14058        lwork: *mut ::core::ffi::c_int,
14059    ) -> cusolverStatus_t {
14060        (culib().cusolverDnZheevdx_bufferSize)(
14061            handle, jobz, range, uplo, n, A, lda, vl, vu, il, iu, meig, W, lwork,
14062        )
14063    }
14064    pub unsafe fn cusolverDnZheevj(
14065        handle: cusolverDnHandle_t,
14066        jobz: cusolverEigMode_t,
14067        uplo: cublasFillMode_t,
14068        n: ::core::ffi::c_int,
14069        A: *mut cuDoubleComplex,
14070        lda: ::core::ffi::c_int,
14071        W: *mut f64,
14072        work: *mut cuDoubleComplex,
14073        lwork: ::core::ffi::c_int,
14074        info: *mut ::core::ffi::c_int,
14075        params: syevjInfo_t,
14076    ) -> cusolverStatus_t {
14077        (culib().cusolverDnZheevj)(handle, jobz, uplo, n, A, lda, W, work, lwork, info, params)
14078    }
14079    pub unsafe fn cusolverDnZheevjBatched(
14080        handle: cusolverDnHandle_t,
14081        jobz: cusolverEigMode_t,
14082        uplo: cublasFillMode_t,
14083        n: ::core::ffi::c_int,
14084        A: *mut cuDoubleComplex,
14085        lda: ::core::ffi::c_int,
14086        W: *mut f64,
14087        work: *mut cuDoubleComplex,
14088        lwork: ::core::ffi::c_int,
14089        info: *mut ::core::ffi::c_int,
14090        params: syevjInfo_t,
14091        batchSize: ::core::ffi::c_int,
14092    ) -> cusolverStatus_t {
14093        (culib().cusolverDnZheevjBatched)(
14094            handle, jobz, uplo, n, A, lda, W, work, lwork, info, params, batchSize,
14095        )
14096    }
14097    pub unsafe fn cusolverDnZheevjBatched_bufferSize(
14098        handle: cusolverDnHandle_t,
14099        jobz: cusolverEigMode_t,
14100        uplo: cublasFillMode_t,
14101        n: ::core::ffi::c_int,
14102        A: *const cuDoubleComplex,
14103        lda: ::core::ffi::c_int,
14104        W: *const f64,
14105        lwork: *mut ::core::ffi::c_int,
14106        params: syevjInfo_t,
14107        batchSize: ::core::ffi::c_int,
14108    ) -> cusolverStatus_t {
14109        (culib().cusolverDnZheevjBatched_bufferSize)(
14110            handle, jobz, uplo, n, A, lda, W, lwork, params, batchSize,
14111        )
14112    }
14113    pub unsafe fn cusolverDnZheevj_bufferSize(
14114        handle: cusolverDnHandle_t,
14115        jobz: cusolverEigMode_t,
14116        uplo: cublasFillMode_t,
14117        n: ::core::ffi::c_int,
14118        A: *const cuDoubleComplex,
14119        lda: ::core::ffi::c_int,
14120        W: *const f64,
14121        lwork: *mut ::core::ffi::c_int,
14122        params: syevjInfo_t,
14123    ) -> cusolverStatus_t {
14124        (culib().cusolverDnZheevj_bufferSize)(handle, jobz, uplo, n, A, lda, W, lwork, params)
14125    }
14126    pub unsafe fn cusolverDnZhegvd(
14127        handle: cusolverDnHandle_t,
14128        itype: cusolverEigType_t,
14129        jobz: cusolverEigMode_t,
14130        uplo: cublasFillMode_t,
14131        n: ::core::ffi::c_int,
14132        A: *mut cuDoubleComplex,
14133        lda: ::core::ffi::c_int,
14134        B: *mut cuDoubleComplex,
14135        ldb: ::core::ffi::c_int,
14136        W: *mut f64,
14137        work: *mut cuDoubleComplex,
14138        lwork: ::core::ffi::c_int,
14139        info: *mut ::core::ffi::c_int,
14140    ) -> cusolverStatus_t {
14141        (culib().cusolverDnZhegvd)(
14142            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info,
14143        )
14144    }
14145    pub unsafe fn cusolverDnZhegvd_bufferSize(
14146        handle: cusolverDnHandle_t,
14147        itype: cusolverEigType_t,
14148        jobz: cusolverEigMode_t,
14149        uplo: cublasFillMode_t,
14150        n: ::core::ffi::c_int,
14151        A: *const cuDoubleComplex,
14152        lda: ::core::ffi::c_int,
14153        B: *const cuDoubleComplex,
14154        ldb: ::core::ffi::c_int,
14155        W: *const f64,
14156        lwork: *mut ::core::ffi::c_int,
14157    ) -> cusolverStatus_t {
14158        (culib().cusolverDnZhegvd_bufferSize)(
14159            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork,
14160        )
14161    }
14162    pub unsafe fn cusolverDnZhegvdx(
14163        handle: cusolverDnHandle_t,
14164        itype: cusolverEigType_t,
14165        jobz: cusolverEigMode_t,
14166        range: cusolverEigRange_t,
14167        uplo: cublasFillMode_t,
14168        n: ::core::ffi::c_int,
14169        A: *mut cuDoubleComplex,
14170        lda: ::core::ffi::c_int,
14171        B: *mut cuDoubleComplex,
14172        ldb: ::core::ffi::c_int,
14173        vl: f64,
14174        vu: f64,
14175        il: ::core::ffi::c_int,
14176        iu: ::core::ffi::c_int,
14177        meig: *mut ::core::ffi::c_int,
14178        W: *mut f64,
14179        work: *mut cuDoubleComplex,
14180        lwork: ::core::ffi::c_int,
14181        info: *mut ::core::ffi::c_int,
14182    ) -> cusolverStatus_t {
14183        (culib().cusolverDnZhegvdx)(
14184            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, work,
14185            lwork, info,
14186        )
14187    }
14188    pub unsafe fn cusolverDnZhegvdx_bufferSize(
14189        handle: cusolverDnHandle_t,
14190        itype: cusolverEigType_t,
14191        jobz: cusolverEigMode_t,
14192        range: cusolverEigRange_t,
14193        uplo: cublasFillMode_t,
14194        n: ::core::ffi::c_int,
14195        A: *const cuDoubleComplex,
14196        lda: ::core::ffi::c_int,
14197        B: *const cuDoubleComplex,
14198        ldb: ::core::ffi::c_int,
14199        vl: f64,
14200        vu: f64,
14201        il: ::core::ffi::c_int,
14202        iu: ::core::ffi::c_int,
14203        meig: *mut ::core::ffi::c_int,
14204        W: *const f64,
14205        lwork: *mut ::core::ffi::c_int,
14206    ) -> cusolverStatus_t {
14207        (culib().cusolverDnZhegvdx_bufferSize)(
14208            handle, itype, jobz, range, uplo, n, A, lda, B, ldb, vl, vu, il, iu, meig, W, lwork,
14209        )
14210    }
14211    pub unsafe fn cusolverDnZhegvj(
14212        handle: cusolverDnHandle_t,
14213        itype: cusolverEigType_t,
14214        jobz: cusolverEigMode_t,
14215        uplo: cublasFillMode_t,
14216        n: ::core::ffi::c_int,
14217        A: *mut cuDoubleComplex,
14218        lda: ::core::ffi::c_int,
14219        B: *mut cuDoubleComplex,
14220        ldb: ::core::ffi::c_int,
14221        W: *mut f64,
14222        work: *mut cuDoubleComplex,
14223        lwork: ::core::ffi::c_int,
14224        info: *mut ::core::ffi::c_int,
14225        params: syevjInfo_t,
14226    ) -> cusolverStatus_t {
14227        (culib().cusolverDnZhegvj)(
14228            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, work, lwork, info, params,
14229        )
14230    }
14231    pub unsafe fn cusolverDnZhegvj_bufferSize(
14232        handle: cusolverDnHandle_t,
14233        itype: cusolverEigType_t,
14234        jobz: cusolverEigMode_t,
14235        uplo: cublasFillMode_t,
14236        n: ::core::ffi::c_int,
14237        A: *const cuDoubleComplex,
14238        lda: ::core::ffi::c_int,
14239        B: *const cuDoubleComplex,
14240        ldb: ::core::ffi::c_int,
14241        W: *const f64,
14242        lwork: *mut ::core::ffi::c_int,
14243        params: syevjInfo_t,
14244    ) -> cusolverStatus_t {
14245        (culib().cusolverDnZhegvj_bufferSize)(
14246            handle, itype, jobz, uplo, n, A, lda, B, ldb, W, lwork, params,
14247        )
14248    }
14249    pub unsafe fn cusolverDnZhetrd(
14250        handle: cusolverDnHandle_t,
14251        uplo: cublasFillMode_t,
14252        n: ::core::ffi::c_int,
14253        A: *mut cuDoubleComplex,
14254        lda: ::core::ffi::c_int,
14255        d: *mut f64,
14256        e: *mut f64,
14257        tau: *mut cuDoubleComplex,
14258        work: *mut cuDoubleComplex,
14259        lwork: ::core::ffi::c_int,
14260        info: *mut ::core::ffi::c_int,
14261    ) -> cusolverStatus_t {
14262        (culib().cusolverDnZhetrd)(handle, uplo, n, A, lda, d, e, tau, work, lwork, info)
14263    }
14264    pub unsafe fn cusolverDnZhetrd_bufferSize(
14265        handle: cusolverDnHandle_t,
14266        uplo: cublasFillMode_t,
14267        n: ::core::ffi::c_int,
14268        A: *const cuDoubleComplex,
14269        lda: ::core::ffi::c_int,
14270        d: *const f64,
14271        e: *const f64,
14272        tau: *const cuDoubleComplex,
14273        lwork: *mut ::core::ffi::c_int,
14274    ) -> cusolverStatus_t {
14275        (culib().cusolverDnZhetrd_bufferSize)(handle, uplo, n, A, lda, d, e, tau, lwork)
14276    }
14277    pub unsafe fn cusolverDnZlaswp(
14278        handle: cusolverDnHandle_t,
14279        n: ::core::ffi::c_int,
14280        A: *mut cuDoubleComplex,
14281        lda: ::core::ffi::c_int,
14282        k1: ::core::ffi::c_int,
14283        k2: ::core::ffi::c_int,
14284        devIpiv: *const ::core::ffi::c_int,
14285        incx: ::core::ffi::c_int,
14286    ) -> cusolverStatus_t {
14287        (culib().cusolverDnZlaswp)(handle, n, A, lda, k1, k2, devIpiv, incx)
14288    }
14289    pub unsafe fn cusolverDnZlauum(
14290        handle: cusolverDnHandle_t,
14291        uplo: cublasFillMode_t,
14292        n: ::core::ffi::c_int,
14293        A: *mut cuDoubleComplex,
14294        lda: ::core::ffi::c_int,
14295        work: *mut cuDoubleComplex,
14296        lwork: ::core::ffi::c_int,
14297        devInfo: *mut ::core::ffi::c_int,
14298    ) -> cusolverStatus_t {
14299        (culib().cusolverDnZlauum)(handle, uplo, n, A, lda, work, lwork, devInfo)
14300    }
14301    pub unsafe fn cusolverDnZlauum_bufferSize(
14302        handle: cusolverDnHandle_t,
14303        uplo: cublasFillMode_t,
14304        n: ::core::ffi::c_int,
14305        A: *mut cuDoubleComplex,
14306        lda: ::core::ffi::c_int,
14307        lwork: *mut ::core::ffi::c_int,
14308    ) -> cusolverStatus_t {
14309        (culib().cusolverDnZlauum_bufferSize)(handle, uplo, n, A, lda, lwork)
14310    }
14311    pub unsafe fn cusolverDnZpotrf(
14312        handle: cusolverDnHandle_t,
14313        uplo: cublasFillMode_t,
14314        n: ::core::ffi::c_int,
14315        A: *mut cuDoubleComplex,
14316        lda: ::core::ffi::c_int,
14317        Workspace: *mut cuDoubleComplex,
14318        Lwork: ::core::ffi::c_int,
14319        devInfo: *mut ::core::ffi::c_int,
14320    ) -> cusolverStatus_t {
14321        (culib().cusolverDnZpotrf)(handle, uplo, n, A, lda, Workspace, Lwork, devInfo)
14322    }
14323    pub unsafe fn cusolverDnZpotrfBatched(
14324        handle: cusolverDnHandle_t,
14325        uplo: cublasFillMode_t,
14326        n: ::core::ffi::c_int,
14327        Aarray: *mut *mut cuDoubleComplex,
14328        lda: ::core::ffi::c_int,
14329        infoArray: *mut ::core::ffi::c_int,
14330        batchSize: ::core::ffi::c_int,
14331    ) -> cusolverStatus_t {
14332        (culib().cusolverDnZpotrfBatched)(handle, uplo, n, Aarray, lda, infoArray, batchSize)
14333    }
14334    pub unsafe fn cusolverDnZpotrf_bufferSize(
14335        handle: cusolverDnHandle_t,
14336        uplo: cublasFillMode_t,
14337        n: ::core::ffi::c_int,
14338        A: *mut cuDoubleComplex,
14339        lda: ::core::ffi::c_int,
14340        Lwork: *mut ::core::ffi::c_int,
14341    ) -> cusolverStatus_t {
14342        (culib().cusolverDnZpotrf_bufferSize)(handle, uplo, n, A, lda, Lwork)
14343    }
14344    pub unsafe fn cusolverDnZpotri(
14345        handle: cusolverDnHandle_t,
14346        uplo: cublasFillMode_t,
14347        n: ::core::ffi::c_int,
14348        A: *mut cuDoubleComplex,
14349        lda: ::core::ffi::c_int,
14350        work: *mut cuDoubleComplex,
14351        lwork: ::core::ffi::c_int,
14352        devInfo: *mut ::core::ffi::c_int,
14353    ) -> cusolverStatus_t {
14354        (culib().cusolverDnZpotri)(handle, uplo, n, A, lda, work, lwork, devInfo)
14355    }
14356    pub unsafe fn cusolverDnZpotri_bufferSize(
14357        handle: cusolverDnHandle_t,
14358        uplo: cublasFillMode_t,
14359        n: ::core::ffi::c_int,
14360        A: *mut cuDoubleComplex,
14361        lda: ::core::ffi::c_int,
14362        lwork: *mut ::core::ffi::c_int,
14363    ) -> cusolverStatus_t {
14364        (culib().cusolverDnZpotri_bufferSize)(handle, uplo, n, A, lda, lwork)
14365    }
14366    pub unsafe fn cusolverDnZpotrs(
14367        handle: cusolverDnHandle_t,
14368        uplo: cublasFillMode_t,
14369        n: ::core::ffi::c_int,
14370        nrhs: ::core::ffi::c_int,
14371        A: *const cuDoubleComplex,
14372        lda: ::core::ffi::c_int,
14373        B: *mut cuDoubleComplex,
14374        ldb: ::core::ffi::c_int,
14375        devInfo: *mut ::core::ffi::c_int,
14376    ) -> cusolverStatus_t {
14377        (culib().cusolverDnZpotrs)(handle, uplo, n, nrhs, A, lda, B, ldb, devInfo)
14378    }
14379    pub unsafe fn cusolverDnZpotrsBatched(
14380        handle: cusolverDnHandle_t,
14381        uplo: cublasFillMode_t,
14382        n: ::core::ffi::c_int,
14383        nrhs: ::core::ffi::c_int,
14384        A: *mut *mut cuDoubleComplex,
14385        lda: ::core::ffi::c_int,
14386        B: *mut *mut cuDoubleComplex,
14387        ldb: ::core::ffi::c_int,
14388        d_info: *mut ::core::ffi::c_int,
14389        batchSize: ::core::ffi::c_int,
14390    ) -> cusolverStatus_t {
14391        (culib().cusolverDnZpotrsBatched)(handle, uplo, n, nrhs, A, lda, B, ldb, d_info, batchSize)
14392    }
14393    pub unsafe fn cusolverDnZsytrf(
14394        handle: cusolverDnHandle_t,
14395        uplo: cublasFillMode_t,
14396        n: ::core::ffi::c_int,
14397        A: *mut cuDoubleComplex,
14398        lda: ::core::ffi::c_int,
14399        ipiv: *mut ::core::ffi::c_int,
14400        work: *mut cuDoubleComplex,
14401        lwork: ::core::ffi::c_int,
14402        info: *mut ::core::ffi::c_int,
14403    ) -> cusolverStatus_t {
14404        (culib().cusolverDnZsytrf)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
14405    }
14406    pub unsafe fn cusolverDnZsytrf_bufferSize(
14407        handle: cusolverDnHandle_t,
14408        n: ::core::ffi::c_int,
14409        A: *mut cuDoubleComplex,
14410        lda: ::core::ffi::c_int,
14411        lwork: *mut ::core::ffi::c_int,
14412    ) -> cusolverStatus_t {
14413        (culib().cusolverDnZsytrf_bufferSize)(handle, n, A, lda, lwork)
14414    }
14415    pub unsafe fn cusolverDnZsytri(
14416        handle: cusolverDnHandle_t,
14417        uplo: cublasFillMode_t,
14418        n: ::core::ffi::c_int,
14419        A: *mut cuDoubleComplex,
14420        lda: ::core::ffi::c_int,
14421        ipiv: *const ::core::ffi::c_int,
14422        work: *mut cuDoubleComplex,
14423        lwork: ::core::ffi::c_int,
14424        info: *mut ::core::ffi::c_int,
14425    ) -> cusolverStatus_t {
14426        (culib().cusolverDnZsytri)(handle, uplo, n, A, lda, ipiv, work, lwork, info)
14427    }
14428    pub unsafe fn cusolverDnZsytri_bufferSize(
14429        handle: cusolverDnHandle_t,
14430        uplo: cublasFillMode_t,
14431        n: ::core::ffi::c_int,
14432        A: *mut cuDoubleComplex,
14433        lda: ::core::ffi::c_int,
14434        ipiv: *const ::core::ffi::c_int,
14435        lwork: *mut ::core::ffi::c_int,
14436    ) -> cusolverStatus_t {
14437        (culib().cusolverDnZsytri_bufferSize)(handle, uplo, n, A, lda, ipiv, lwork)
14438    }
14439    pub unsafe fn cusolverDnZungbr(
14440        handle: cusolverDnHandle_t,
14441        side: cublasSideMode_t,
14442        m: ::core::ffi::c_int,
14443        n: ::core::ffi::c_int,
14444        k: ::core::ffi::c_int,
14445        A: *mut cuDoubleComplex,
14446        lda: ::core::ffi::c_int,
14447        tau: *const cuDoubleComplex,
14448        work: *mut cuDoubleComplex,
14449        lwork: ::core::ffi::c_int,
14450        info: *mut ::core::ffi::c_int,
14451    ) -> cusolverStatus_t {
14452        (culib().cusolverDnZungbr)(handle, side, m, n, k, A, lda, tau, work, lwork, info)
14453    }
14454    pub unsafe fn cusolverDnZungbr_bufferSize(
14455        handle: cusolverDnHandle_t,
14456        side: cublasSideMode_t,
14457        m: ::core::ffi::c_int,
14458        n: ::core::ffi::c_int,
14459        k: ::core::ffi::c_int,
14460        A: *const cuDoubleComplex,
14461        lda: ::core::ffi::c_int,
14462        tau: *const cuDoubleComplex,
14463        lwork: *mut ::core::ffi::c_int,
14464    ) -> cusolverStatus_t {
14465        (culib().cusolverDnZungbr_bufferSize)(handle, side, m, n, k, A, lda, tau, lwork)
14466    }
14467    pub unsafe fn cusolverDnZungqr(
14468        handle: cusolverDnHandle_t,
14469        m: ::core::ffi::c_int,
14470        n: ::core::ffi::c_int,
14471        k: ::core::ffi::c_int,
14472        A: *mut cuDoubleComplex,
14473        lda: ::core::ffi::c_int,
14474        tau: *const cuDoubleComplex,
14475        work: *mut cuDoubleComplex,
14476        lwork: ::core::ffi::c_int,
14477        info: *mut ::core::ffi::c_int,
14478    ) -> cusolverStatus_t {
14479        (culib().cusolverDnZungqr)(handle, m, n, k, A, lda, tau, work, lwork, info)
14480    }
14481    pub unsafe fn cusolverDnZungqr_bufferSize(
14482        handle: cusolverDnHandle_t,
14483        m: ::core::ffi::c_int,
14484        n: ::core::ffi::c_int,
14485        k: ::core::ffi::c_int,
14486        A: *const cuDoubleComplex,
14487        lda: ::core::ffi::c_int,
14488        tau: *const cuDoubleComplex,
14489        lwork: *mut ::core::ffi::c_int,
14490    ) -> cusolverStatus_t {
14491        (culib().cusolverDnZungqr_bufferSize)(handle, m, n, k, A, lda, tau, lwork)
14492    }
14493    pub unsafe fn cusolverDnZungtr(
14494        handle: cusolverDnHandle_t,
14495        uplo: cublasFillMode_t,
14496        n: ::core::ffi::c_int,
14497        A: *mut cuDoubleComplex,
14498        lda: ::core::ffi::c_int,
14499        tau: *const cuDoubleComplex,
14500        work: *mut cuDoubleComplex,
14501        lwork: ::core::ffi::c_int,
14502        info: *mut ::core::ffi::c_int,
14503    ) -> cusolverStatus_t {
14504        (culib().cusolverDnZungtr)(handle, uplo, n, A, lda, tau, work, lwork, info)
14505    }
14506    pub unsafe fn cusolverDnZungtr_bufferSize(
14507        handle: cusolverDnHandle_t,
14508        uplo: cublasFillMode_t,
14509        n: ::core::ffi::c_int,
14510        A: *const cuDoubleComplex,
14511        lda: ::core::ffi::c_int,
14512        tau: *const cuDoubleComplex,
14513        lwork: *mut ::core::ffi::c_int,
14514    ) -> cusolverStatus_t {
14515        (culib().cusolverDnZungtr_bufferSize)(handle, uplo, n, A, lda, tau, lwork)
14516    }
14517    pub unsafe fn cusolverDnZunmqr(
14518        handle: cusolverDnHandle_t,
14519        side: cublasSideMode_t,
14520        trans: cublasOperation_t,
14521        m: ::core::ffi::c_int,
14522        n: ::core::ffi::c_int,
14523        k: ::core::ffi::c_int,
14524        A: *const cuDoubleComplex,
14525        lda: ::core::ffi::c_int,
14526        tau: *const cuDoubleComplex,
14527        C: *mut cuDoubleComplex,
14528        ldc: ::core::ffi::c_int,
14529        work: *mut cuDoubleComplex,
14530        lwork: ::core::ffi::c_int,
14531        devInfo: *mut ::core::ffi::c_int,
14532    ) -> cusolverStatus_t {
14533        (culib().cusolverDnZunmqr)(
14534            handle, side, trans, m, n, k, A, lda, tau, C, ldc, work, lwork, devInfo,
14535        )
14536    }
14537    pub unsafe fn cusolverDnZunmqr_bufferSize(
14538        handle: cusolverDnHandle_t,
14539        side: cublasSideMode_t,
14540        trans: cublasOperation_t,
14541        m: ::core::ffi::c_int,
14542        n: ::core::ffi::c_int,
14543        k: ::core::ffi::c_int,
14544        A: *const cuDoubleComplex,
14545        lda: ::core::ffi::c_int,
14546        tau: *const cuDoubleComplex,
14547        C: *const cuDoubleComplex,
14548        ldc: ::core::ffi::c_int,
14549        lwork: *mut ::core::ffi::c_int,
14550    ) -> cusolverStatus_t {
14551        (culib().cusolverDnZunmqr_bufferSize)(
14552            handle, side, trans, m, n, k, A, lda, tau, C, ldc, lwork,
14553        )
14554    }
14555    pub unsafe fn cusolverDnZunmtr(
14556        handle: cusolverDnHandle_t,
14557        side: cublasSideMode_t,
14558        uplo: cublasFillMode_t,
14559        trans: cublasOperation_t,
14560        m: ::core::ffi::c_int,
14561        n: ::core::ffi::c_int,
14562        A: *mut cuDoubleComplex,
14563        lda: ::core::ffi::c_int,
14564        tau: *mut cuDoubleComplex,
14565        C: *mut cuDoubleComplex,
14566        ldc: ::core::ffi::c_int,
14567        work: *mut cuDoubleComplex,
14568        lwork: ::core::ffi::c_int,
14569        info: *mut ::core::ffi::c_int,
14570    ) -> cusolverStatus_t {
14571        (culib().cusolverDnZunmtr)(
14572            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, work, lwork, info,
14573        )
14574    }
14575    pub unsafe fn cusolverDnZunmtr_bufferSize(
14576        handle: cusolverDnHandle_t,
14577        side: cublasSideMode_t,
14578        uplo: cublasFillMode_t,
14579        trans: cublasOperation_t,
14580        m: ::core::ffi::c_int,
14581        n: ::core::ffi::c_int,
14582        A: *const cuDoubleComplex,
14583        lda: ::core::ffi::c_int,
14584        tau: *const cuDoubleComplex,
14585        C: *const cuDoubleComplex,
14586        ldc: ::core::ffi::c_int,
14587        lwork: *mut ::core::ffi::c_int,
14588    ) -> cusolverStatus_t {
14589        (culib().cusolverDnZunmtr_bufferSize)(
14590            handle, side, uplo, trans, m, n, A, lda, tau, C, ldc, lwork,
14591        )
14592    }
14593    pub unsafe fn cusolverGetProperty(
14594        type_: libraryPropertyType,
14595        value: *mut ::core::ffi::c_int,
14596    ) -> cusolverStatus_t {
14597        (culib().cusolverGetProperty)(type_, value)
14598    }
14599    pub unsafe fn cusolverGetVersion(version: *mut ::core::ffi::c_int) -> cusolverStatus_t {
14600        (culib().cusolverGetVersion)(version)
14601    }
14602    pub unsafe fn cusolverRfAccessBundledFactorsDevice(
14603        handle: cusolverRfHandle_t,
14604        nnzM: *mut ::core::ffi::c_int,
14605        Mp: *mut *mut ::core::ffi::c_int,
14606        Mi: *mut *mut ::core::ffi::c_int,
14607        Mx: *mut *mut f64,
14608    ) -> cusolverStatus_t {
14609        (culib().cusolverRfAccessBundledFactorsDevice)(handle, nnzM, Mp, Mi, Mx)
14610    }
14611    pub unsafe fn cusolverRfAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t {
14612        (culib().cusolverRfAnalyze)(handle)
14613    }
14614    pub unsafe fn cusolverRfBatchAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t {
14615        (culib().cusolverRfBatchAnalyze)(handle)
14616    }
14617    pub unsafe fn cusolverRfBatchRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t {
14618        (culib().cusolverRfBatchRefactor)(handle)
14619    }
14620    pub unsafe fn cusolverRfBatchResetValues(
14621        batchSize: ::core::ffi::c_int,
14622        n: ::core::ffi::c_int,
14623        nnzA: ::core::ffi::c_int,
14624        csrRowPtrA: *mut ::core::ffi::c_int,
14625        csrColIndA: *mut ::core::ffi::c_int,
14626        csrValA_array: *mut *mut f64,
14627        P: *mut ::core::ffi::c_int,
14628        Q: *mut ::core::ffi::c_int,
14629        handle: cusolverRfHandle_t,
14630    ) -> cusolverStatus_t {
14631        (culib().cusolverRfBatchResetValues)(
14632            batchSize,
14633            n,
14634            nnzA,
14635            csrRowPtrA,
14636            csrColIndA,
14637            csrValA_array,
14638            P,
14639            Q,
14640            handle,
14641        )
14642    }
14643    pub unsafe fn cusolverRfBatchSetupHost(
14644        batchSize: ::core::ffi::c_int,
14645        n: ::core::ffi::c_int,
14646        nnzA: ::core::ffi::c_int,
14647        h_csrRowPtrA: *mut ::core::ffi::c_int,
14648        h_csrColIndA: *mut ::core::ffi::c_int,
14649        h_csrValA_array: *mut *mut f64,
14650        nnzL: ::core::ffi::c_int,
14651        h_csrRowPtrL: *mut ::core::ffi::c_int,
14652        h_csrColIndL: *mut ::core::ffi::c_int,
14653        h_csrValL: *mut f64,
14654        nnzU: ::core::ffi::c_int,
14655        h_csrRowPtrU: *mut ::core::ffi::c_int,
14656        h_csrColIndU: *mut ::core::ffi::c_int,
14657        h_csrValU: *mut f64,
14658        h_P: *mut ::core::ffi::c_int,
14659        h_Q: *mut ::core::ffi::c_int,
14660        handle: cusolverRfHandle_t,
14661    ) -> cusolverStatus_t {
14662        (culib().cusolverRfBatchSetupHost)(
14663            batchSize,
14664            n,
14665            nnzA,
14666            h_csrRowPtrA,
14667            h_csrColIndA,
14668            h_csrValA_array,
14669            nnzL,
14670            h_csrRowPtrL,
14671            h_csrColIndL,
14672            h_csrValL,
14673            nnzU,
14674            h_csrRowPtrU,
14675            h_csrColIndU,
14676            h_csrValU,
14677            h_P,
14678            h_Q,
14679            handle,
14680        )
14681    }
14682    pub unsafe fn cusolverRfBatchSolve(
14683        handle: cusolverRfHandle_t,
14684        P: *mut ::core::ffi::c_int,
14685        Q: *mut ::core::ffi::c_int,
14686        nrhs: ::core::ffi::c_int,
14687        Temp: *mut f64,
14688        ldt: ::core::ffi::c_int,
14689        XF_array: *mut *mut f64,
14690        ldxf: ::core::ffi::c_int,
14691    ) -> cusolverStatus_t {
14692        (culib().cusolverRfBatchSolve)(handle, P, Q, nrhs, Temp, ldt, XF_array, ldxf)
14693    }
14694    pub unsafe fn cusolverRfBatchZeroPivot(
14695        handle: cusolverRfHandle_t,
14696        position: *mut ::core::ffi::c_int,
14697    ) -> cusolverStatus_t {
14698        (culib().cusolverRfBatchZeroPivot)(handle, position)
14699    }
14700    pub unsafe fn cusolverRfCreate(handle: *mut cusolverRfHandle_t) -> cusolverStatus_t {
14701        (culib().cusolverRfCreate)(handle)
14702    }
14703    pub unsafe fn cusolverRfDestroy(handle: cusolverRfHandle_t) -> cusolverStatus_t {
14704        (culib().cusolverRfDestroy)(handle)
14705    }
14706    pub unsafe fn cusolverRfExtractBundledFactorsHost(
14707        handle: cusolverRfHandle_t,
14708        h_nnzM: *mut ::core::ffi::c_int,
14709        h_Mp: *mut *mut ::core::ffi::c_int,
14710        h_Mi: *mut *mut ::core::ffi::c_int,
14711        h_Mx: *mut *mut f64,
14712    ) -> cusolverStatus_t {
14713        (culib().cusolverRfExtractBundledFactorsHost)(handle, h_nnzM, h_Mp, h_Mi, h_Mx)
14714    }
14715    pub unsafe fn cusolverRfExtractSplitFactorsHost(
14716        handle: cusolverRfHandle_t,
14717        h_nnzL: *mut ::core::ffi::c_int,
14718        h_csrRowPtrL: *mut *mut ::core::ffi::c_int,
14719        h_csrColIndL: *mut *mut ::core::ffi::c_int,
14720        h_csrValL: *mut *mut f64,
14721        h_nnzU: *mut ::core::ffi::c_int,
14722        h_csrRowPtrU: *mut *mut ::core::ffi::c_int,
14723        h_csrColIndU: *mut *mut ::core::ffi::c_int,
14724        h_csrValU: *mut *mut f64,
14725    ) -> cusolverStatus_t {
14726        (culib().cusolverRfExtractSplitFactorsHost)(
14727            handle,
14728            h_nnzL,
14729            h_csrRowPtrL,
14730            h_csrColIndL,
14731            h_csrValL,
14732            h_nnzU,
14733            h_csrRowPtrU,
14734            h_csrColIndU,
14735            h_csrValU,
14736        )
14737    }
14738    pub unsafe fn cusolverRfGetAlgs(
14739        handle: cusolverRfHandle_t,
14740        factAlg: *mut cusolverRfFactorization_t,
14741        solveAlg: *mut cusolverRfTriangularSolve_t,
14742    ) -> cusolverStatus_t {
14743        (culib().cusolverRfGetAlgs)(handle, factAlg, solveAlg)
14744    }
14745    pub unsafe fn cusolverRfGetMatrixFormat(
14746        handle: cusolverRfHandle_t,
14747        format: *mut cusolverRfMatrixFormat_t,
14748        diag: *mut cusolverRfUnitDiagonal_t,
14749    ) -> cusolverStatus_t {
14750        (culib().cusolverRfGetMatrixFormat)(handle, format, diag)
14751    }
14752    pub unsafe fn cusolverRfGetNumericBoostReport(
14753        handle: cusolverRfHandle_t,
14754        report: *mut cusolverRfNumericBoostReport_t,
14755    ) -> cusolverStatus_t {
14756        (culib().cusolverRfGetNumericBoostReport)(handle, report)
14757    }
14758    pub unsafe fn cusolverRfGetNumericProperties(
14759        handle: cusolverRfHandle_t,
14760        zero: *mut f64,
14761        boost: *mut f64,
14762    ) -> cusolverStatus_t {
14763        (culib().cusolverRfGetNumericProperties)(handle, zero, boost)
14764    }
14765    pub unsafe fn cusolverRfGetResetValuesFastMode(
14766        handle: cusolverRfHandle_t,
14767        fastMode: *mut cusolverRfResetValuesFastMode_t,
14768    ) -> cusolverStatus_t {
14769        (culib().cusolverRfGetResetValuesFastMode)(handle, fastMode)
14770    }
14771    pub unsafe fn cusolverRfRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t {
14772        (culib().cusolverRfRefactor)(handle)
14773    }
14774    pub unsafe fn cusolverRfResetValues(
14775        n: ::core::ffi::c_int,
14776        nnzA: ::core::ffi::c_int,
14777        csrRowPtrA: *mut ::core::ffi::c_int,
14778        csrColIndA: *mut ::core::ffi::c_int,
14779        csrValA: *mut f64,
14780        P: *mut ::core::ffi::c_int,
14781        Q: *mut ::core::ffi::c_int,
14782        handle: cusolverRfHandle_t,
14783    ) -> cusolverStatus_t {
14784        (culib().cusolverRfResetValues)(n, nnzA, csrRowPtrA, csrColIndA, csrValA, P, Q, handle)
14785    }
14786    pub unsafe fn cusolverRfSetAlgs(
14787        handle: cusolverRfHandle_t,
14788        factAlg: cusolverRfFactorization_t,
14789        solveAlg: cusolverRfTriangularSolve_t,
14790    ) -> cusolverStatus_t {
14791        (culib().cusolverRfSetAlgs)(handle, factAlg, solveAlg)
14792    }
14793    pub unsafe fn cusolverRfSetMatrixFormat(
14794        handle: cusolverRfHandle_t,
14795        format: cusolverRfMatrixFormat_t,
14796        diag: cusolverRfUnitDiagonal_t,
14797    ) -> cusolverStatus_t {
14798        (culib().cusolverRfSetMatrixFormat)(handle, format, diag)
14799    }
14800    pub unsafe fn cusolverRfSetNumericProperties(
14801        handle: cusolverRfHandle_t,
14802        zero: f64,
14803        boost: f64,
14804    ) -> cusolverStatus_t {
14805        (culib().cusolverRfSetNumericProperties)(handle, zero, boost)
14806    }
14807    pub unsafe fn cusolverRfSetResetValuesFastMode(
14808        handle: cusolverRfHandle_t,
14809        fastMode: cusolverRfResetValuesFastMode_t,
14810    ) -> cusolverStatus_t {
14811        (culib().cusolverRfSetResetValuesFastMode)(handle, fastMode)
14812    }
14813    pub unsafe fn cusolverRfSetupDevice(
14814        n: ::core::ffi::c_int,
14815        nnzA: ::core::ffi::c_int,
14816        csrRowPtrA: *mut ::core::ffi::c_int,
14817        csrColIndA: *mut ::core::ffi::c_int,
14818        csrValA: *mut f64,
14819        nnzL: ::core::ffi::c_int,
14820        csrRowPtrL: *mut ::core::ffi::c_int,
14821        csrColIndL: *mut ::core::ffi::c_int,
14822        csrValL: *mut f64,
14823        nnzU: ::core::ffi::c_int,
14824        csrRowPtrU: *mut ::core::ffi::c_int,
14825        csrColIndU: *mut ::core::ffi::c_int,
14826        csrValU: *mut f64,
14827        P: *mut ::core::ffi::c_int,
14828        Q: *mut ::core::ffi::c_int,
14829        handle: cusolverRfHandle_t,
14830    ) -> cusolverStatus_t {
14831        (culib().cusolverRfSetupDevice)(
14832            n, nnzA, csrRowPtrA, csrColIndA, csrValA, nnzL, csrRowPtrL, csrColIndL, csrValL, nnzU,
14833            csrRowPtrU, csrColIndU, csrValU, P, Q, handle,
14834        )
14835    }
14836    pub unsafe fn cusolverRfSetupHost(
14837        n: ::core::ffi::c_int,
14838        nnzA: ::core::ffi::c_int,
14839        h_csrRowPtrA: *mut ::core::ffi::c_int,
14840        h_csrColIndA: *mut ::core::ffi::c_int,
14841        h_csrValA: *mut f64,
14842        nnzL: ::core::ffi::c_int,
14843        h_csrRowPtrL: *mut ::core::ffi::c_int,
14844        h_csrColIndL: *mut ::core::ffi::c_int,
14845        h_csrValL: *mut f64,
14846        nnzU: ::core::ffi::c_int,
14847        h_csrRowPtrU: *mut ::core::ffi::c_int,
14848        h_csrColIndU: *mut ::core::ffi::c_int,
14849        h_csrValU: *mut f64,
14850        h_P: *mut ::core::ffi::c_int,
14851        h_Q: *mut ::core::ffi::c_int,
14852        handle: cusolverRfHandle_t,
14853    ) -> cusolverStatus_t {
14854        (culib().cusolverRfSetupHost)(
14855            n,
14856            nnzA,
14857            h_csrRowPtrA,
14858            h_csrColIndA,
14859            h_csrValA,
14860            nnzL,
14861            h_csrRowPtrL,
14862            h_csrColIndL,
14863            h_csrValL,
14864            nnzU,
14865            h_csrRowPtrU,
14866            h_csrColIndU,
14867            h_csrValU,
14868            h_P,
14869            h_Q,
14870            handle,
14871        )
14872    }
14873    pub unsafe fn cusolverRfSolve(
14874        handle: cusolverRfHandle_t,
14875        P: *mut ::core::ffi::c_int,
14876        Q: *mut ::core::ffi::c_int,
14877        nrhs: ::core::ffi::c_int,
14878        Temp: *mut f64,
14879        ldt: ::core::ffi::c_int,
14880        XF: *mut f64,
14881        ldxf: ::core::ffi::c_int,
14882    ) -> cusolverStatus_t {
14883        (culib().cusolverRfSolve)(handle, P, Q, nrhs, Temp, ldt, XF, ldxf)
14884    }
14885    pub unsafe fn cusolverSpCcsreigsHost(
14886        handle: cusolverSpHandle_t,
14887        m: ::core::ffi::c_int,
14888        nnz: ::core::ffi::c_int,
14889        descrA: cusparseMatDescr_t,
14890        csrValA: *const cuComplex,
14891        csrRowPtrA: *const ::core::ffi::c_int,
14892        csrColIndA: *const ::core::ffi::c_int,
14893        left_bottom_corner: cuComplex,
14894        right_upper_corner: cuComplex,
14895        num_eigs: *mut ::core::ffi::c_int,
14896    ) -> cusolverStatus_t {
14897        (culib().cusolverSpCcsreigsHost)(
14898            handle,
14899            m,
14900            nnz,
14901            descrA,
14902            csrValA,
14903            csrRowPtrA,
14904            csrColIndA,
14905            left_bottom_corner,
14906            right_upper_corner,
14907            num_eigs,
14908        )
14909    }
14910    pub unsafe fn cusolverSpCcsreigvsi(
14911        handle: cusolverSpHandle_t,
14912        m: ::core::ffi::c_int,
14913        nnz: ::core::ffi::c_int,
14914        descrA: cusparseMatDescr_t,
14915        csrValA: *const cuComplex,
14916        csrRowPtrA: *const ::core::ffi::c_int,
14917        csrColIndA: *const ::core::ffi::c_int,
14918        mu0: cuComplex,
14919        x0: *const cuComplex,
14920        maxite: ::core::ffi::c_int,
14921        eps: f32,
14922        mu: *mut cuComplex,
14923        x: *mut cuComplex,
14924    ) -> cusolverStatus_t {
14925        (culib().cusolverSpCcsreigvsi)(
14926            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, eps, mu, x,
14927        )
14928    }
14929    pub unsafe fn cusolverSpCcsreigvsiHost(
14930        handle: cusolverSpHandle_t,
14931        m: ::core::ffi::c_int,
14932        nnz: ::core::ffi::c_int,
14933        descrA: cusparseMatDescr_t,
14934        csrValA: *const cuComplex,
14935        csrRowPtrA: *const ::core::ffi::c_int,
14936        csrColIndA: *const ::core::ffi::c_int,
14937        mu0: cuComplex,
14938        x0: *const cuComplex,
14939        maxite: ::core::ffi::c_int,
14940        tol: f32,
14941        mu: *mut cuComplex,
14942        x: *mut cuComplex,
14943    ) -> cusolverStatus_t {
14944        (culib().cusolverSpCcsreigvsiHost)(
14945            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, tol, mu, x,
14946        )
14947    }
14948    pub unsafe fn cusolverSpCcsrlsqvqrHost(
14949        handle: cusolverSpHandle_t,
14950        m: ::core::ffi::c_int,
14951        n: ::core::ffi::c_int,
14952        nnz: ::core::ffi::c_int,
14953        descrA: cusparseMatDescr_t,
14954        csrValA: *const cuComplex,
14955        csrRowPtrA: *const ::core::ffi::c_int,
14956        csrColIndA: *const ::core::ffi::c_int,
14957        b: *const cuComplex,
14958        tol: f32,
14959        rankA: *mut ::core::ffi::c_int,
14960        x: *mut cuComplex,
14961        p: *mut ::core::ffi::c_int,
14962        min_norm: *mut f32,
14963    ) -> cusolverStatus_t {
14964        (culib().cusolverSpCcsrlsqvqrHost)(
14965            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, tol, rankA, x, p,
14966            min_norm,
14967        )
14968    }
14969    pub unsafe fn cusolverSpCcsrlsvchol(
14970        handle: cusolverSpHandle_t,
14971        m: ::core::ffi::c_int,
14972        nnz: ::core::ffi::c_int,
14973        descrA: cusparseMatDescr_t,
14974        csrVal: *const cuComplex,
14975        csrRowPtr: *const ::core::ffi::c_int,
14976        csrColInd: *const ::core::ffi::c_int,
14977        b: *const cuComplex,
14978        tol: f32,
14979        reorder: ::core::ffi::c_int,
14980        x: *mut cuComplex,
14981        singularity: *mut ::core::ffi::c_int,
14982    ) -> cusolverStatus_t {
14983        (culib().cusolverSpCcsrlsvchol)(
14984            handle,
14985            m,
14986            nnz,
14987            descrA,
14988            csrVal,
14989            csrRowPtr,
14990            csrColInd,
14991            b,
14992            tol,
14993            reorder,
14994            x,
14995            singularity,
14996        )
14997    }
14998    pub unsafe fn cusolverSpCcsrlsvcholHost(
14999        handle: cusolverSpHandle_t,
15000        m: ::core::ffi::c_int,
15001        nnz: ::core::ffi::c_int,
15002        descrA: cusparseMatDescr_t,
15003        csrVal: *const cuComplex,
15004        csrRowPtr: *const ::core::ffi::c_int,
15005        csrColInd: *const ::core::ffi::c_int,
15006        b: *const cuComplex,
15007        tol: f32,
15008        reorder: ::core::ffi::c_int,
15009        x: *mut cuComplex,
15010        singularity: *mut ::core::ffi::c_int,
15011    ) -> cusolverStatus_t {
15012        (culib().cusolverSpCcsrlsvcholHost)(
15013            handle,
15014            m,
15015            nnz,
15016            descrA,
15017            csrVal,
15018            csrRowPtr,
15019            csrColInd,
15020            b,
15021            tol,
15022            reorder,
15023            x,
15024            singularity,
15025        )
15026    }
15027    pub unsafe fn cusolverSpCcsrlsvluHost(
15028        handle: cusolverSpHandle_t,
15029        n: ::core::ffi::c_int,
15030        nnzA: ::core::ffi::c_int,
15031        descrA: cusparseMatDescr_t,
15032        csrValA: *const cuComplex,
15033        csrRowPtrA: *const ::core::ffi::c_int,
15034        csrColIndA: *const ::core::ffi::c_int,
15035        b: *const cuComplex,
15036        tol: f32,
15037        reorder: ::core::ffi::c_int,
15038        x: *mut cuComplex,
15039        singularity: *mut ::core::ffi::c_int,
15040    ) -> cusolverStatus_t {
15041        (culib().cusolverSpCcsrlsvluHost)(
15042            handle,
15043            n,
15044            nnzA,
15045            descrA,
15046            csrValA,
15047            csrRowPtrA,
15048            csrColIndA,
15049            b,
15050            tol,
15051            reorder,
15052            x,
15053            singularity,
15054        )
15055    }
15056    pub unsafe fn cusolverSpCcsrlsvqr(
15057        handle: cusolverSpHandle_t,
15058        m: ::core::ffi::c_int,
15059        nnz: ::core::ffi::c_int,
15060        descrA: cusparseMatDescr_t,
15061        csrVal: *const cuComplex,
15062        csrRowPtr: *const ::core::ffi::c_int,
15063        csrColInd: *const ::core::ffi::c_int,
15064        b: *const cuComplex,
15065        tol: f32,
15066        reorder: ::core::ffi::c_int,
15067        x: *mut cuComplex,
15068        singularity: *mut ::core::ffi::c_int,
15069    ) -> cusolverStatus_t {
15070        (culib().cusolverSpCcsrlsvqr)(
15071            handle,
15072            m,
15073            nnz,
15074            descrA,
15075            csrVal,
15076            csrRowPtr,
15077            csrColInd,
15078            b,
15079            tol,
15080            reorder,
15081            x,
15082            singularity,
15083        )
15084    }
15085    pub unsafe fn cusolverSpCcsrlsvqrHost(
15086        handle: cusolverSpHandle_t,
15087        m: ::core::ffi::c_int,
15088        nnz: ::core::ffi::c_int,
15089        descrA: cusparseMatDescr_t,
15090        csrValA: *const cuComplex,
15091        csrRowPtrA: *const ::core::ffi::c_int,
15092        csrColIndA: *const ::core::ffi::c_int,
15093        b: *const cuComplex,
15094        tol: f32,
15095        reorder: ::core::ffi::c_int,
15096        x: *mut cuComplex,
15097        singularity: *mut ::core::ffi::c_int,
15098    ) -> cusolverStatus_t {
15099        (culib().cusolverSpCcsrlsvqrHost)(
15100            handle,
15101            m,
15102            nnz,
15103            descrA,
15104            csrValA,
15105            csrRowPtrA,
15106            csrColIndA,
15107            b,
15108            tol,
15109            reorder,
15110            x,
15111            singularity,
15112        )
15113    }
15114    pub unsafe fn cusolverSpCcsrqrBufferInfoBatched(
15115        handle: cusolverSpHandle_t,
15116        m: ::core::ffi::c_int,
15117        n: ::core::ffi::c_int,
15118        nnz: ::core::ffi::c_int,
15119        descrA: cusparseMatDescr_t,
15120        csrVal: *const cuComplex,
15121        csrRowPtr: *const ::core::ffi::c_int,
15122        csrColInd: *const ::core::ffi::c_int,
15123        batchSize: ::core::ffi::c_int,
15124        info: csrqrInfo_t,
15125        internalDataInBytes: *mut usize,
15126        workspaceInBytes: *mut usize,
15127    ) -> cusolverStatus_t {
15128        (culib().cusolverSpCcsrqrBufferInfoBatched)(
15129            handle,
15130            m,
15131            n,
15132            nnz,
15133            descrA,
15134            csrVal,
15135            csrRowPtr,
15136            csrColInd,
15137            batchSize,
15138            info,
15139            internalDataInBytes,
15140            workspaceInBytes,
15141        )
15142    }
15143    pub unsafe fn cusolverSpCcsrqrsvBatched(
15144        handle: cusolverSpHandle_t,
15145        m: ::core::ffi::c_int,
15146        n: ::core::ffi::c_int,
15147        nnz: ::core::ffi::c_int,
15148        descrA: cusparseMatDescr_t,
15149        csrValA: *const cuComplex,
15150        csrRowPtrA: *const ::core::ffi::c_int,
15151        csrColIndA: *const ::core::ffi::c_int,
15152        b: *const cuComplex,
15153        x: *mut cuComplex,
15154        batchSize: ::core::ffi::c_int,
15155        info: csrqrInfo_t,
15156        pBuffer: *mut ::core::ffi::c_void,
15157    ) -> cusolverStatus_t {
15158        (culib().cusolverSpCcsrqrsvBatched)(
15159            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, x, batchSize, info,
15160            pBuffer,
15161        )
15162    }
15163    pub unsafe fn cusolverSpCcsrzfdHost(
15164        handle: cusolverSpHandle_t,
15165        n: ::core::ffi::c_int,
15166        nnz: ::core::ffi::c_int,
15167        descrA: cusparseMatDescr_t,
15168        csrValA: *const cuComplex,
15169        csrRowPtrA: *const ::core::ffi::c_int,
15170        csrColIndA: *const ::core::ffi::c_int,
15171        P: *mut ::core::ffi::c_int,
15172        numnz: *mut ::core::ffi::c_int,
15173    ) -> cusolverStatus_t {
15174        (culib().cusolverSpCcsrzfdHost)(
15175            handle, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, P, numnz,
15176        )
15177    }
15178    pub unsafe fn cusolverSpCreate(handle: *mut cusolverSpHandle_t) -> cusolverStatus_t {
15179        (culib().cusolverSpCreate)(handle)
15180    }
15181    pub unsafe fn cusolverSpCreateCsrqrInfo(info: *mut csrqrInfo_t) -> cusolverStatus_t {
15182        (culib().cusolverSpCreateCsrqrInfo)(info)
15183    }
15184    pub unsafe fn cusolverSpDcsreigsHost(
15185        handle: cusolverSpHandle_t,
15186        m: ::core::ffi::c_int,
15187        nnz: ::core::ffi::c_int,
15188        descrA: cusparseMatDescr_t,
15189        csrValA: *const f64,
15190        csrRowPtrA: *const ::core::ffi::c_int,
15191        csrColIndA: *const ::core::ffi::c_int,
15192        left_bottom_corner: cuDoubleComplex,
15193        right_upper_corner: cuDoubleComplex,
15194        num_eigs: *mut ::core::ffi::c_int,
15195    ) -> cusolverStatus_t {
15196        (culib().cusolverSpDcsreigsHost)(
15197            handle,
15198            m,
15199            nnz,
15200            descrA,
15201            csrValA,
15202            csrRowPtrA,
15203            csrColIndA,
15204            left_bottom_corner,
15205            right_upper_corner,
15206            num_eigs,
15207        )
15208    }
15209    pub unsafe fn cusolverSpDcsreigvsi(
15210        handle: cusolverSpHandle_t,
15211        m: ::core::ffi::c_int,
15212        nnz: ::core::ffi::c_int,
15213        descrA: cusparseMatDescr_t,
15214        csrValA: *const f64,
15215        csrRowPtrA: *const ::core::ffi::c_int,
15216        csrColIndA: *const ::core::ffi::c_int,
15217        mu0: f64,
15218        x0: *const f64,
15219        maxite: ::core::ffi::c_int,
15220        eps: f64,
15221        mu: *mut f64,
15222        x: *mut f64,
15223    ) -> cusolverStatus_t {
15224        (culib().cusolverSpDcsreigvsi)(
15225            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, eps, mu, x,
15226        )
15227    }
15228    pub unsafe fn cusolverSpDcsreigvsiHost(
15229        handle: cusolverSpHandle_t,
15230        m: ::core::ffi::c_int,
15231        nnz: ::core::ffi::c_int,
15232        descrA: cusparseMatDescr_t,
15233        csrValA: *const f64,
15234        csrRowPtrA: *const ::core::ffi::c_int,
15235        csrColIndA: *const ::core::ffi::c_int,
15236        mu0: f64,
15237        x0: *const f64,
15238        maxite: ::core::ffi::c_int,
15239        tol: f64,
15240        mu: *mut f64,
15241        x: *mut f64,
15242    ) -> cusolverStatus_t {
15243        (culib().cusolverSpDcsreigvsiHost)(
15244            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, tol, mu, x,
15245        )
15246    }
15247    pub unsafe fn cusolverSpDcsrlsqvqrHost(
15248        handle: cusolverSpHandle_t,
15249        m: ::core::ffi::c_int,
15250        n: ::core::ffi::c_int,
15251        nnz: ::core::ffi::c_int,
15252        descrA: cusparseMatDescr_t,
15253        csrValA: *const f64,
15254        csrRowPtrA: *const ::core::ffi::c_int,
15255        csrColIndA: *const ::core::ffi::c_int,
15256        b: *const f64,
15257        tol: f64,
15258        rankA: *mut ::core::ffi::c_int,
15259        x: *mut f64,
15260        p: *mut ::core::ffi::c_int,
15261        min_norm: *mut f64,
15262    ) -> cusolverStatus_t {
15263        (culib().cusolverSpDcsrlsqvqrHost)(
15264            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, tol, rankA, x, p,
15265            min_norm,
15266        )
15267    }
15268    pub unsafe fn cusolverSpDcsrlsvchol(
15269        handle: cusolverSpHandle_t,
15270        m: ::core::ffi::c_int,
15271        nnz: ::core::ffi::c_int,
15272        descrA: cusparseMatDescr_t,
15273        csrVal: *const f64,
15274        csrRowPtr: *const ::core::ffi::c_int,
15275        csrColInd: *const ::core::ffi::c_int,
15276        b: *const f64,
15277        tol: f64,
15278        reorder: ::core::ffi::c_int,
15279        x: *mut f64,
15280        singularity: *mut ::core::ffi::c_int,
15281    ) -> cusolverStatus_t {
15282        (culib().cusolverSpDcsrlsvchol)(
15283            handle,
15284            m,
15285            nnz,
15286            descrA,
15287            csrVal,
15288            csrRowPtr,
15289            csrColInd,
15290            b,
15291            tol,
15292            reorder,
15293            x,
15294            singularity,
15295        )
15296    }
15297    pub unsafe fn cusolverSpDcsrlsvcholHost(
15298        handle: cusolverSpHandle_t,
15299        m: ::core::ffi::c_int,
15300        nnz: ::core::ffi::c_int,
15301        descrA: cusparseMatDescr_t,
15302        csrVal: *const f64,
15303        csrRowPtr: *const ::core::ffi::c_int,
15304        csrColInd: *const ::core::ffi::c_int,
15305        b: *const f64,
15306        tol: f64,
15307        reorder: ::core::ffi::c_int,
15308        x: *mut f64,
15309        singularity: *mut ::core::ffi::c_int,
15310    ) -> cusolverStatus_t {
15311        (culib().cusolverSpDcsrlsvcholHost)(
15312            handle,
15313            m,
15314            nnz,
15315            descrA,
15316            csrVal,
15317            csrRowPtr,
15318            csrColInd,
15319            b,
15320            tol,
15321            reorder,
15322            x,
15323            singularity,
15324        )
15325    }
15326    pub unsafe fn cusolverSpDcsrlsvluHost(
15327        handle: cusolverSpHandle_t,
15328        n: ::core::ffi::c_int,
15329        nnzA: ::core::ffi::c_int,
15330        descrA: cusparseMatDescr_t,
15331        csrValA: *const f64,
15332        csrRowPtrA: *const ::core::ffi::c_int,
15333        csrColIndA: *const ::core::ffi::c_int,
15334        b: *const f64,
15335        tol: f64,
15336        reorder: ::core::ffi::c_int,
15337        x: *mut f64,
15338        singularity: *mut ::core::ffi::c_int,
15339    ) -> cusolverStatus_t {
15340        (culib().cusolverSpDcsrlsvluHost)(
15341            handle,
15342            n,
15343            nnzA,
15344            descrA,
15345            csrValA,
15346            csrRowPtrA,
15347            csrColIndA,
15348            b,
15349            tol,
15350            reorder,
15351            x,
15352            singularity,
15353        )
15354    }
15355    pub unsafe fn cusolverSpDcsrlsvqr(
15356        handle: cusolverSpHandle_t,
15357        m: ::core::ffi::c_int,
15358        nnz: ::core::ffi::c_int,
15359        descrA: cusparseMatDescr_t,
15360        csrVal: *const f64,
15361        csrRowPtr: *const ::core::ffi::c_int,
15362        csrColInd: *const ::core::ffi::c_int,
15363        b: *const f64,
15364        tol: f64,
15365        reorder: ::core::ffi::c_int,
15366        x: *mut f64,
15367        singularity: *mut ::core::ffi::c_int,
15368    ) -> cusolverStatus_t {
15369        (culib().cusolverSpDcsrlsvqr)(
15370            handle,
15371            m,
15372            nnz,
15373            descrA,
15374            csrVal,
15375            csrRowPtr,
15376            csrColInd,
15377            b,
15378            tol,
15379            reorder,
15380            x,
15381            singularity,
15382        )
15383    }
15384    pub unsafe fn cusolverSpDcsrlsvqrHost(
15385        handle: cusolverSpHandle_t,
15386        m: ::core::ffi::c_int,
15387        nnz: ::core::ffi::c_int,
15388        descrA: cusparseMatDescr_t,
15389        csrValA: *const f64,
15390        csrRowPtrA: *const ::core::ffi::c_int,
15391        csrColIndA: *const ::core::ffi::c_int,
15392        b: *const f64,
15393        tol: f64,
15394        reorder: ::core::ffi::c_int,
15395        x: *mut f64,
15396        singularity: *mut ::core::ffi::c_int,
15397    ) -> cusolverStatus_t {
15398        (culib().cusolverSpDcsrlsvqrHost)(
15399            handle,
15400            m,
15401            nnz,
15402            descrA,
15403            csrValA,
15404            csrRowPtrA,
15405            csrColIndA,
15406            b,
15407            tol,
15408            reorder,
15409            x,
15410            singularity,
15411        )
15412    }
15413    pub unsafe fn cusolverSpDcsrqrBufferInfoBatched(
15414        handle: cusolverSpHandle_t,
15415        m: ::core::ffi::c_int,
15416        n: ::core::ffi::c_int,
15417        nnz: ::core::ffi::c_int,
15418        descrA: cusparseMatDescr_t,
15419        csrVal: *const f64,
15420        csrRowPtr: *const ::core::ffi::c_int,
15421        csrColInd: *const ::core::ffi::c_int,
15422        batchSize: ::core::ffi::c_int,
15423        info: csrqrInfo_t,
15424        internalDataInBytes: *mut usize,
15425        workspaceInBytes: *mut usize,
15426    ) -> cusolverStatus_t {
15427        (culib().cusolverSpDcsrqrBufferInfoBatched)(
15428            handle,
15429            m,
15430            n,
15431            nnz,
15432            descrA,
15433            csrVal,
15434            csrRowPtr,
15435            csrColInd,
15436            batchSize,
15437            info,
15438            internalDataInBytes,
15439            workspaceInBytes,
15440        )
15441    }
15442    pub unsafe fn cusolverSpDcsrqrsvBatched(
15443        handle: cusolverSpHandle_t,
15444        m: ::core::ffi::c_int,
15445        n: ::core::ffi::c_int,
15446        nnz: ::core::ffi::c_int,
15447        descrA: cusparseMatDescr_t,
15448        csrValA: *const f64,
15449        csrRowPtrA: *const ::core::ffi::c_int,
15450        csrColIndA: *const ::core::ffi::c_int,
15451        b: *const f64,
15452        x: *mut f64,
15453        batchSize: ::core::ffi::c_int,
15454        info: csrqrInfo_t,
15455        pBuffer: *mut ::core::ffi::c_void,
15456    ) -> cusolverStatus_t {
15457        (culib().cusolverSpDcsrqrsvBatched)(
15458            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, x, batchSize, info,
15459            pBuffer,
15460        )
15461    }
15462    pub unsafe fn cusolverSpDcsrzfdHost(
15463        handle: cusolverSpHandle_t,
15464        n: ::core::ffi::c_int,
15465        nnz: ::core::ffi::c_int,
15466        descrA: cusparseMatDescr_t,
15467        csrValA: *const f64,
15468        csrRowPtrA: *const ::core::ffi::c_int,
15469        csrColIndA: *const ::core::ffi::c_int,
15470        P: *mut ::core::ffi::c_int,
15471        numnz: *mut ::core::ffi::c_int,
15472    ) -> cusolverStatus_t {
15473        (culib().cusolverSpDcsrzfdHost)(
15474            handle, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, P, numnz,
15475        )
15476    }
15477    pub unsafe fn cusolverSpDestroy(handle: cusolverSpHandle_t) -> cusolverStatus_t {
15478        (culib().cusolverSpDestroy)(handle)
15479    }
15480    pub unsafe fn cusolverSpDestroyCsrqrInfo(info: csrqrInfo_t) -> cusolverStatus_t {
15481        (culib().cusolverSpDestroyCsrqrInfo)(info)
15482    }
15483    pub unsafe fn cusolverSpGetStream(
15484        handle: cusolverSpHandle_t,
15485        streamId: *mut cudaStream_t,
15486    ) -> cusolverStatus_t {
15487        (culib().cusolverSpGetStream)(handle, streamId)
15488    }
15489    pub unsafe fn cusolverSpScsreigsHost(
15490        handle: cusolverSpHandle_t,
15491        m: ::core::ffi::c_int,
15492        nnz: ::core::ffi::c_int,
15493        descrA: cusparseMatDescr_t,
15494        csrValA: *const f32,
15495        csrRowPtrA: *const ::core::ffi::c_int,
15496        csrColIndA: *const ::core::ffi::c_int,
15497        left_bottom_corner: cuComplex,
15498        right_upper_corner: cuComplex,
15499        num_eigs: *mut ::core::ffi::c_int,
15500    ) -> cusolverStatus_t {
15501        (culib().cusolverSpScsreigsHost)(
15502            handle,
15503            m,
15504            nnz,
15505            descrA,
15506            csrValA,
15507            csrRowPtrA,
15508            csrColIndA,
15509            left_bottom_corner,
15510            right_upper_corner,
15511            num_eigs,
15512        )
15513    }
15514    pub unsafe fn cusolverSpScsreigvsi(
15515        handle: cusolverSpHandle_t,
15516        m: ::core::ffi::c_int,
15517        nnz: ::core::ffi::c_int,
15518        descrA: cusparseMatDescr_t,
15519        csrValA: *const f32,
15520        csrRowPtrA: *const ::core::ffi::c_int,
15521        csrColIndA: *const ::core::ffi::c_int,
15522        mu0: f32,
15523        x0: *const f32,
15524        maxite: ::core::ffi::c_int,
15525        eps: f32,
15526        mu: *mut f32,
15527        x: *mut f32,
15528    ) -> cusolverStatus_t {
15529        (culib().cusolverSpScsreigvsi)(
15530            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, eps, mu, x,
15531        )
15532    }
15533    pub unsafe fn cusolverSpScsreigvsiHost(
15534        handle: cusolverSpHandle_t,
15535        m: ::core::ffi::c_int,
15536        nnz: ::core::ffi::c_int,
15537        descrA: cusparseMatDescr_t,
15538        csrValA: *const f32,
15539        csrRowPtrA: *const ::core::ffi::c_int,
15540        csrColIndA: *const ::core::ffi::c_int,
15541        mu0: f32,
15542        x0: *const f32,
15543        maxite: ::core::ffi::c_int,
15544        tol: f32,
15545        mu: *mut f32,
15546        x: *mut f32,
15547    ) -> cusolverStatus_t {
15548        (culib().cusolverSpScsreigvsiHost)(
15549            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, tol, mu, x,
15550        )
15551    }
15552    pub unsafe fn cusolverSpScsrlsqvqrHost(
15553        handle: cusolverSpHandle_t,
15554        m: ::core::ffi::c_int,
15555        n: ::core::ffi::c_int,
15556        nnz: ::core::ffi::c_int,
15557        descrA: cusparseMatDescr_t,
15558        csrValA: *const f32,
15559        csrRowPtrA: *const ::core::ffi::c_int,
15560        csrColIndA: *const ::core::ffi::c_int,
15561        b: *const f32,
15562        tol: f32,
15563        rankA: *mut ::core::ffi::c_int,
15564        x: *mut f32,
15565        p: *mut ::core::ffi::c_int,
15566        min_norm: *mut f32,
15567    ) -> cusolverStatus_t {
15568        (culib().cusolverSpScsrlsqvqrHost)(
15569            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, tol, rankA, x, p,
15570            min_norm,
15571        )
15572    }
15573    pub unsafe fn cusolverSpScsrlsvchol(
15574        handle: cusolverSpHandle_t,
15575        m: ::core::ffi::c_int,
15576        nnz: ::core::ffi::c_int,
15577        descrA: cusparseMatDescr_t,
15578        csrVal: *const f32,
15579        csrRowPtr: *const ::core::ffi::c_int,
15580        csrColInd: *const ::core::ffi::c_int,
15581        b: *const f32,
15582        tol: f32,
15583        reorder: ::core::ffi::c_int,
15584        x: *mut f32,
15585        singularity: *mut ::core::ffi::c_int,
15586    ) -> cusolverStatus_t {
15587        (culib().cusolverSpScsrlsvchol)(
15588            handle,
15589            m,
15590            nnz,
15591            descrA,
15592            csrVal,
15593            csrRowPtr,
15594            csrColInd,
15595            b,
15596            tol,
15597            reorder,
15598            x,
15599            singularity,
15600        )
15601    }
15602    pub unsafe fn cusolverSpScsrlsvcholHost(
15603        handle: cusolverSpHandle_t,
15604        m: ::core::ffi::c_int,
15605        nnz: ::core::ffi::c_int,
15606        descrA: cusparseMatDescr_t,
15607        csrVal: *const f32,
15608        csrRowPtr: *const ::core::ffi::c_int,
15609        csrColInd: *const ::core::ffi::c_int,
15610        b: *const f32,
15611        tol: f32,
15612        reorder: ::core::ffi::c_int,
15613        x: *mut f32,
15614        singularity: *mut ::core::ffi::c_int,
15615    ) -> cusolverStatus_t {
15616        (culib().cusolverSpScsrlsvcholHost)(
15617            handle,
15618            m,
15619            nnz,
15620            descrA,
15621            csrVal,
15622            csrRowPtr,
15623            csrColInd,
15624            b,
15625            tol,
15626            reorder,
15627            x,
15628            singularity,
15629        )
15630    }
15631    pub unsafe fn cusolverSpScsrlsvluHost(
15632        handle: cusolverSpHandle_t,
15633        n: ::core::ffi::c_int,
15634        nnzA: ::core::ffi::c_int,
15635        descrA: cusparseMatDescr_t,
15636        csrValA: *const f32,
15637        csrRowPtrA: *const ::core::ffi::c_int,
15638        csrColIndA: *const ::core::ffi::c_int,
15639        b: *const f32,
15640        tol: f32,
15641        reorder: ::core::ffi::c_int,
15642        x: *mut f32,
15643        singularity: *mut ::core::ffi::c_int,
15644    ) -> cusolverStatus_t {
15645        (culib().cusolverSpScsrlsvluHost)(
15646            handle,
15647            n,
15648            nnzA,
15649            descrA,
15650            csrValA,
15651            csrRowPtrA,
15652            csrColIndA,
15653            b,
15654            tol,
15655            reorder,
15656            x,
15657            singularity,
15658        )
15659    }
15660    pub unsafe fn cusolverSpScsrlsvqr(
15661        handle: cusolverSpHandle_t,
15662        m: ::core::ffi::c_int,
15663        nnz: ::core::ffi::c_int,
15664        descrA: cusparseMatDescr_t,
15665        csrVal: *const f32,
15666        csrRowPtr: *const ::core::ffi::c_int,
15667        csrColInd: *const ::core::ffi::c_int,
15668        b: *const f32,
15669        tol: f32,
15670        reorder: ::core::ffi::c_int,
15671        x: *mut f32,
15672        singularity: *mut ::core::ffi::c_int,
15673    ) -> cusolverStatus_t {
15674        (culib().cusolverSpScsrlsvqr)(
15675            handle,
15676            m,
15677            nnz,
15678            descrA,
15679            csrVal,
15680            csrRowPtr,
15681            csrColInd,
15682            b,
15683            tol,
15684            reorder,
15685            x,
15686            singularity,
15687        )
15688    }
15689    pub unsafe fn cusolverSpScsrlsvqrHost(
15690        handle: cusolverSpHandle_t,
15691        m: ::core::ffi::c_int,
15692        nnz: ::core::ffi::c_int,
15693        descrA: cusparseMatDescr_t,
15694        csrValA: *const f32,
15695        csrRowPtrA: *const ::core::ffi::c_int,
15696        csrColIndA: *const ::core::ffi::c_int,
15697        b: *const f32,
15698        tol: f32,
15699        reorder: ::core::ffi::c_int,
15700        x: *mut f32,
15701        singularity: *mut ::core::ffi::c_int,
15702    ) -> cusolverStatus_t {
15703        (culib().cusolverSpScsrlsvqrHost)(
15704            handle,
15705            m,
15706            nnz,
15707            descrA,
15708            csrValA,
15709            csrRowPtrA,
15710            csrColIndA,
15711            b,
15712            tol,
15713            reorder,
15714            x,
15715            singularity,
15716        )
15717    }
15718    pub unsafe fn cusolverSpScsrqrBufferInfoBatched(
15719        handle: cusolverSpHandle_t,
15720        m: ::core::ffi::c_int,
15721        n: ::core::ffi::c_int,
15722        nnz: ::core::ffi::c_int,
15723        descrA: cusparseMatDescr_t,
15724        csrVal: *const f32,
15725        csrRowPtr: *const ::core::ffi::c_int,
15726        csrColInd: *const ::core::ffi::c_int,
15727        batchSize: ::core::ffi::c_int,
15728        info: csrqrInfo_t,
15729        internalDataInBytes: *mut usize,
15730        workspaceInBytes: *mut usize,
15731    ) -> cusolverStatus_t {
15732        (culib().cusolverSpScsrqrBufferInfoBatched)(
15733            handle,
15734            m,
15735            n,
15736            nnz,
15737            descrA,
15738            csrVal,
15739            csrRowPtr,
15740            csrColInd,
15741            batchSize,
15742            info,
15743            internalDataInBytes,
15744            workspaceInBytes,
15745        )
15746    }
15747    pub unsafe fn cusolverSpScsrqrsvBatched(
15748        handle: cusolverSpHandle_t,
15749        m: ::core::ffi::c_int,
15750        n: ::core::ffi::c_int,
15751        nnz: ::core::ffi::c_int,
15752        descrA: cusparseMatDescr_t,
15753        csrValA: *const f32,
15754        csrRowPtrA: *const ::core::ffi::c_int,
15755        csrColIndA: *const ::core::ffi::c_int,
15756        b: *const f32,
15757        x: *mut f32,
15758        batchSize: ::core::ffi::c_int,
15759        info: csrqrInfo_t,
15760        pBuffer: *mut ::core::ffi::c_void,
15761    ) -> cusolverStatus_t {
15762        (culib().cusolverSpScsrqrsvBatched)(
15763            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, x, batchSize, info,
15764            pBuffer,
15765        )
15766    }
15767    pub unsafe fn cusolverSpScsrzfdHost(
15768        handle: cusolverSpHandle_t,
15769        n: ::core::ffi::c_int,
15770        nnz: ::core::ffi::c_int,
15771        descrA: cusparseMatDescr_t,
15772        csrValA: *const f32,
15773        csrRowPtrA: *const ::core::ffi::c_int,
15774        csrColIndA: *const ::core::ffi::c_int,
15775        P: *mut ::core::ffi::c_int,
15776        numnz: *mut ::core::ffi::c_int,
15777    ) -> cusolverStatus_t {
15778        (culib().cusolverSpScsrzfdHost)(
15779            handle, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, P, numnz,
15780        )
15781    }
15782    pub unsafe fn cusolverSpSetStream(
15783        handle: cusolverSpHandle_t,
15784        streamId: cudaStream_t,
15785    ) -> cusolverStatus_t {
15786        (culib().cusolverSpSetStream)(handle, streamId)
15787    }
15788    pub unsafe fn cusolverSpXcsrissymHost(
15789        handle: cusolverSpHandle_t,
15790        m: ::core::ffi::c_int,
15791        nnzA: ::core::ffi::c_int,
15792        descrA: cusparseMatDescr_t,
15793        csrRowPtrA: *const ::core::ffi::c_int,
15794        csrEndPtrA: *const ::core::ffi::c_int,
15795        csrColIndA: *const ::core::ffi::c_int,
15796        issym: *mut ::core::ffi::c_int,
15797    ) -> cusolverStatus_t {
15798        (culib().cusolverSpXcsrissymHost)(
15799            handle, m, nnzA, descrA, csrRowPtrA, csrEndPtrA, csrColIndA, issym,
15800        )
15801    }
15802    pub unsafe fn cusolverSpXcsrmetisndHost(
15803        handle: cusolverSpHandle_t,
15804        n: ::core::ffi::c_int,
15805        nnzA: ::core::ffi::c_int,
15806        descrA: cusparseMatDescr_t,
15807        csrRowPtrA: *const ::core::ffi::c_int,
15808        csrColIndA: *const ::core::ffi::c_int,
15809        options: *const i64,
15810        p: *mut ::core::ffi::c_int,
15811    ) -> cusolverStatus_t {
15812        (culib().cusolverSpXcsrmetisndHost)(
15813            handle, n, nnzA, descrA, csrRowPtrA, csrColIndA, options, p,
15814        )
15815    }
15816    pub unsafe fn cusolverSpXcsrpermHost(
15817        handle: cusolverSpHandle_t,
15818        m: ::core::ffi::c_int,
15819        n: ::core::ffi::c_int,
15820        nnzA: ::core::ffi::c_int,
15821        descrA: cusparseMatDescr_t,
15822        csrRowPtrA: *mut ::core::ffi::c_int,
15823        csrColIndA: *mut ::core::ffi::c_int,
15824        p: *const ::core::ffi::c_int,
15825        q: *const ::core::ffi::c_int,
15826        map: *mut ::core::ffi::c_int,
15827        pBuffer: *mut ::core::ffi::c_void,
15828    ) -> cusolverStatus_t {
15829        (culib().cusolverSpXcsrpermHost)(
15830            handle, m, n, nnzA, descrA, csrRowPtrA, csrColIndA, p, q, map, pBuffer,
15831        )
15832    }
15833    pub unsafe fn cusolverSpXcsrperm_bufferSizeHost(
15834        handle: cusolverSpHandle_t,
15835        m: ::core::ffi::c_int,
15836        n: ::core::ffi::c_int,
15837        nnzA: ::core::ffi::c_int,
15838        descrA: cusparseMatDescr_t,
15839        csrRowPtrA: *const ::core::ffi::c_int,
15840        csrColIndA: *const ::core::ffi::c_int,
15841        p: *const ::core::ffi::c_int,
15842        q: *const ::core::ffi::c_int,
15843        bufferSizeInBytes: *mut usize,
15844    ) -> cusolverStatus_t {
15845        (culib().cusolverSpXcsrperm_bufferSizeHost)(
15846            handle,
15847            m,
15848            n,
15849            nnzA,
15850            descrA,
15851            csrRowPtrA,
15852            csrColIndA,
15853            p,
15854            q,
15855            bufferSizeInBytes,
15856        )
15857    }
15858    pub unsafe fn cusolverSpXcsrqrAnalysisBatched(
15859        handle: cusolverSpHandle_t,
15860        m: ::core::ffi::c_int,
15861        n: ::core::ffi::c_int,
15862        nnzA: ::core::ffi::c_int,
15863        descrA: cusparseMatDescr_t,
15864        csrRowPtrA: *const ::core::ffi::c_int,
15865        csrColIndA: *const ::core::ffi::c_int,
15866        info: csrqrInfo_t,
15867    ) -> cusolverStatus_t {
15868        (culib().cusolverSpXcsrqrAnalysisBatched)(
15869            handle, m, n, nnzA, descrA, csrRowPtrA, csrColIndA, info,
15870        )
15871    }
15872    pub unsafe fn cusolverSpXcsrsymamdHost(
15873        handle: cusolverSpHandle_t,
15874        n: ::core::ffi::c_int,
15875        nnzA: ::core::ffi::c_int,
15876        descrA: cusparseMatDescr_t,
15877        csrRowPtrA: *const ::core::ffi::c_int,
15878        csrColIndA: *const ::core::ffi::c_int,
15879        p: *mut ::core::ffi::c_int,
15880    ) -> cusolverStatus_t {
15881        (culib().cusolverSpXcsrsymamdHost)(handle, n, nnzA, descrA, csrRowPtrA, csrColIndA, p)
15882    }
15883    pub unsafe fn cusolverSpXcsrsymmdqHost(
15884        handle: cusolverSpHandle_t,
15885        n: ::core::ffi::c_int,
15886        nnzA: ::core::ffi::c_int,
15887        descrA: cusparseMatDescr_t,
15888        csrRowPtrA: *const ::core::ffi::c_int,
15889        csrColIndA: *const ::core::ffi::c_int,
15890        p: *mut ::core::ffi::c_int,
15891    ) -> cusolverStatus_t {
15892        (culib().cusolverSpXcsrsymmdqHost)(handle, n, nnzA, descrA, csrRowPtrA, csrColIndA, p)
15893    }
15894    pub unsafe fn cusolverSpXcsrsymrcmHost(
15895        handle: cusolverSpHandle_t,
15896        n: ::core::ffi::c_int,
15897        nnzA: ::core::ffi::c_int,
15898        descrA: cusparseMatDescr_t,
15899        csrRowPtrA: *const ::core::ffi::c_int,
15900        csrColIndA: *const ::core::ffi::c_int,
15901        p: *mut ::core::ffi::c_int,
15902    ) -> cusolverStatus_t {
15903        (culib().cusolverSpXcsrsymrcmHost)(handle, n, nnzA, descrA, csrRowPtrA, csrColIndA, p)
15904    }
15905    pub unsafe fn cusolverSpZcsreigsHost(
15906        handle: cusolverSpHandle_t,
15907        m: ::core::ffi::c_int,
15908        nnz: ::core::ffi::c_int,
15909        descrA: cusparseMatDescr_t,
15910        csrValA: *const cuDoubleComplex,
15911        csrRowPtrA: *const ::core::ffi::c_int,
15912        csrColIndA: *const ::core::ffi::c_int,
15913        left_bottom_corner: cuDoubleComplex,
15914        right_upper_corner: cuDoubleComplex,
15915        num_eigs: *mut ::core::ffi::c_int,
15916    ) -> cusolverStatus_t {
15917        (culib().cusolverSpZcsreigsHost)(
15918            handle,
15919            m,
15920            nnz,
15921            descrA,
15922            csrValA,
15923            csrRowPtrA,
15924            csrColIndA,
15925            left_bottom_corner,
15926            right_upper_corner,
15927            num_eigs,
15928        )
15929    }
15930    pub unsafe fn cusolverSpZcsreigvsi(
15931        handle: cusolverSpHandle_t,
15932        m: ::core::ffi::c_int,
15933        nnz: ::core::ffi::c_int,
15934        descrA: cusparseMatDescr_t,
15935        csrValA: *const cuDoubleComplex,
15936        csrRowPtrA: *const ::core::ffi::c_int,
15937        csrColIndA: *const ::core::ffi::c_int,
15938        mu0: cuDoubleComplex,
15939        x0: *const cuDoubleComplex,
15940        maxite: ::core::ffi::c_int,
15941        eps: f64,
15942        mu: *mut cuDoubleComplex,
15943        x: *mut cuDoubleComplex,
15944    ) -> cusolverStatus_t {
15945        (culib().cusolverSpZcsreigvsi)(
15946            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, eps, mu, x,
15947        )
15948    }
15949    pub unsafe fn cusolverSpZcsreigvsiHost(
15950        handle: cusolverSpHandle_t,
15951        m: ::core::ffi::c_int,
15952        nnz: ::core::ffi::c_int,
15953        descrA: cusparseMatDescr_t,
15954        csrValA: *const cuDoubleComplex,
15955        csrRowPtrA: *const ::core::ffi::c_int,
15956        csrColIndA: *const ::core::ffi::c_int,
15957        mu0: cuDoubleComplex,
15958        x0: *const cuDoubleComplex,
15959        maxite: ::core::ffi::c_int,
15960        tol: f64,
15961        mu: *mut cuDoubleComplex,
15962        x: *mut cuDoubleComplex,
15963    ) -> cusolverStatus_t {
15964        (culib().cusolverSpZcsreigvsiHost)(
15965            handle, m, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, mu0, x0, maxite, tol, mu, x,
15966        )
15967    }
15968    pub unsafe fn cusolverSpZcsrlsqvqrHost(
15969        handle: cusolverSpHandle_t,
15970        m: ::core::ffi::c_int,
15971        n: ::core::ffi::c_int,
15972        nnz: ::core::ffi::c_int,
15973        descrA: cusparseMatDescr_t,
15974        csrValA: *const cuDoubleComplex,
15975        csrRowPtrA: *const ::core::ffi::c_int,
15976        csrColIndA: *const ::core::ffi::c_int,
15977        b: *const cuDoubleComplex,
15978        tol: f64,
15979        rankA: *mut ::core::ffi::c_int,
15980        x: *mut cuDoubleComplex,
15981        p: *mut ::core::ffi::c_int,
15982        min_norm: *mut f64,
15983    ) -> cusolverStatus_t {
15984        (culib().cusolverSpZcsrlsqvqrHost)(
15985            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, tol, rankA, x, p,
15986            min_norm,
15987        )
15988    }
15989    pub unsafe fn cusolverSpZcsrlsvchol(
15990        handle: cusolverSpHandle_t,
15991        m: ::core::ffi::c_int,
15992        nnz: ::core::ffi::c_int,
15993        descrA: cusparseMatDescr_t,
15994        csrVal: *const cuDoubleComplex,
15995        csrRowPtr: *const ::core::ffi::c_int,
15996        csrColInd: *const ::core::ffi::c_int,
15997        b: *const cuDoubleComplex,
15998        tol: f64,
15999        reorder: ::core::ffi::c_int,
16000        x: *mut cuDoubleComplex,
16001        singularity: *mut ::core::ffi::c_int,
16002    ) -> cusolverStatus_t {
16003        (culib().cusolverSpZcsrlsvchol)(
16004            handle,
16005            m,
16006            nnz,
16007            descrA,
16008            csrVal,
16009            csrRowPtr,
16010            csrColInd,
16011            b,
16012            tol,
16013            reorder,
16014            x,
16015            singularity,
16016        )
16017    }
16018    pub unsafe fn cusolverSpZcsrlsvcholHost(
16019        handle: cusolverSpHandle_t,
16020        m: ::core::ffi::c_int,
16021        nnz: ::core::ffi::c_int,
16022        descrA: cusparseMatDescr_t,
16023        csrVal: *const cuDoubleComplex,
16024        csrRowPtr: *const ::core::ffi::c_int,
16025        csrColInd: *const ::core::ffi::c_int,
16026        b: *const cuDoubleComplex,
16027        tol: f64,
16028        reorder: ::core::ffi::c_int,
16029        x: *mut cuDoubleComplex,
16030        singularity: *mut ::core::ffi::c_int,
16031    ) -> cusolverStatus_t {
16032        (culib().cusolverSpZcsrlsvcholHost)(
16033            handle,
16034            m,
16035            nnz,
16036            descrA,
16037            csrVal,
16038            csrRowPtr,
16039            csrColInd,
16040            b,
16041            tol,
16042            reorder,
16043            x,
16044            singularity,
16045        )
16046    }
16047    pub unsafe fn cusolverSpZcsrlsvluHost(
16048        handle: cusolverSpHandle_t,
16049        n: ::core::ffi::c_int,
16050        nnzA: ::core::ffi::c_int,
16051        descrA: cusparseMatDescr_t,
16052        csrValA: *const cuDoubleComplex,
16053        csrRowPtrA: *const ::core::ffi::c_int,
16054        csrColIndA: *const ::core::ffi::c_int,
16055        b: *const cuDoubleComplex,
16056        tol: f64,
16057        reorder: ::core::ffi::c_int,
16058        x: *mut cuDoubleComplex,
16059        singularity: *mut ::core::ffi::c_int,
16060    ) -> cusolverStatus_t {
16061        (culib().cusolverSpZcsrlsvluHost)(
16062            handle,
16063            n,
16064            nnzA,
16065            descrA,
16066            csrValA,
16067            csrRowPtrA,
16068            csrColIndA,
16069            b,
16070            tol,
16071            reorder,
16072            x,
16073            singularity,
16074        )
16075    }
16076    pub unsafe fn cusolverSpZcsrlsvqr(
16077        handle: cusolverSpHandle_t,
16078        m: ::core::ffi::c_int,
16079        nnz: ::core::ffi::c_int,
16080        descrA: cusparseMatDescr_t,
16081        csrVal: *const cuDoubleComplex,
16082        csrRowPtr: *const ::core::ffi::c_int,
16083        csrColInd: *const ::core::ffi::c_int,
16084        b: *const cuDoubleComplex,
16085        tol: f64,
16086        reorder: ::core::ffi::c_int,
16087        x: *mut cuDoubleComplex,
16088        singularity: *mut ::core::ffi::c_int,
16089    ) -> cusolverStatus_t {
16090        (culib().cusolverSpZcsrlsvqr)(
16091            handle,
16092            m,
16093            nnz,
16094            descrA,
16095            csrVal,
16096            csrRowPtr,
16097            csrColInd,
16098            b,
16099            tol,
16100            reorder,
16101            x,
16102            singularity,
16103        )
16104    }
16105    pub unsafe fn cusolverSpZcsrlsvqrHost(
16106        handle: cusolverSpHandle_t,
16107        m: ::core::ffi::c_int,
16108        nnz: ::core::ffi::c_int,
16109        descrA: cusparseMatDescr_t,
16110        csrValA: *const cuDoubleComplex,
16111        csrRowPtrA: *const ::core::ffi::c_int,
16112        csrColIndA: *const ::core::ffi::c_int,
16113        b: *const cuDoubleComplex,
16114        tol: f64,
16115        reorder: ::core::ffi::c_int,
16116        x: *mut cuDoubleComplex,
16117        singularity: *mut ::core::ffi::c_int,
16118    ) -> cusolverStatus_t {
16119        (culib().cusolverSpZcsrlsvqrHost)(
16120            handle,
16121            m,
16122            nnz,
16123            descrA,
16124            csrValA,
16125            csrRowPtrA,
16126            csrColIndA,
16127            b,
16128            tol,
16129            reorder,
16130            x,
16131            singularity,
16132        )
16133    }
16134    pub unsafe fn cusolverSpZcsrqrBufferInfoBatched(
16135        handle: cusolverSpHandle_t,
16136        m: ::core::ffi::c_int,
16137        n: ::core::ffi::c_int,
16138        nnz: ::core::ffi::c_int,
16139        descrA: cusparseMatDescr_t,
16140        csrVal: *const cuDoubleComplex,
16141        csrRowPtr: *const ::core::ffi::c_int,
16142        csrColInd: *const ::core::ffi::c_int,
16143        batchSize: ::core::ffi::c_int,
16144        info: csrqrInfo_t,
16145        internalDataInBytes: *mut usize,
16146        workspaceInBytes: *mut usize,
16147    ) -> cusolverStatus_t {
16148        (culib().cusolverSpZcsrqrBufferInfoBatched)(
16149            handle,
16150            m,
16151            n,
16152            nnz,
16153            descrA,
16154            csrVal,
16155            csrRowPtr,
16156            csrColInd,
16157            batchSize,
16158            info,
16159            internalDataInBytes,
16160            workspaceInBytes,
16161        )
16162    }
16163    pub unsafe fn cusolverSpZcsrqrsvBatched(
16164        handle: cusolverSpHandle_t,
16165        m: ::core::ffi::c_int,
16166        n: ::core::ffi::c_int,
16167        nnz: ::core::ffi::c_int,
16168        descrA: cusparseMatDescr_t,
16169        csrValA: *const cuDoubleComplex,
16170        csrRowPtrA: *const ::core::ffi::c_int,
16171        csrColIndA: *const ::core::ffi::c_int,
16172        b: *const cuDoubleComplex,
16173        x: *mut cuDoubleComplex,
16174        batchSize: ::core::ffi::c_int,
16175        info: csrqrInfo_t,
16176        pBuffer: *mut ::core::ffi::c_void,
16177    ) -> cusolverStatus_t {
16178        (culib().cusolverSpZcsrqrsvBatched)(
16179            handle, m, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, b, x, batchSize, info,
16180            pBuffer,
16181        )
16182    }
16183    pub unsafe fn cusolverSpZcsrzfdHost(
16184        handle: cusolverSpHandle_t,
16185        n: ::core::ffi::c_int,
16186        nnz: ::core::ffi::c_int,
16187        descrA: cusparseMatDescr_t,
16188        csrValA: *const cuDoubleComplex,
16189        csrRowPtrA: *const ::core::ffi::c_int,
16190        csrColIndA: *const ::core::ffi::c_int,
16191        P: *mut ::core::ffi::c_int,
16192        numnz: *mut ::core::ffi::c_int,
16193    ) -> cusolverStatus_t {
16194        (culib().cusolverSpZcsrzfdHost)(
16195            handle, n, nnz, descrA, csrValA, csrRowPtrA, csrColIndA, P, numnz,
16196        )
16197    }
16198    pub struct Lib {
16199        __library: ::libloading::Library,
16200        pub cusolverDnCCgels: unsafe extern "C" fn(
16201            handle: cusolverDnHandle_t,
16202            m: cusolver_int_t,
16203            n: cusolver_int_t,
16204            nrhs: cusolver_int_t,
16205            dA: *mut cuComplex,
16206            ldda: cusolver_int_t,
16207            dB: *mut cuComplex,
16208            lddb: cusolver_int_t,
16209            dX: *mut cuComplex,
16210            lddx: cusolver_int_t,
16211            dWorkspace: *mut ::core::ffi::c_void,
16212            lwork_bytes: usize,
16213            iter: *mut cusolver_int_t,
16214            d_info: *mut cusolver_int_t,
16215        ) -> cusolverStatus_t,
16216        pub cusolverDnCCgels_bufferSize: unsafe extern "C" fn(
16217            handle: cusolverDnHandle_t,
16218            m: cusolver_int_t,
16219            n: cusolver_int_t,
16220            nrhs: cusolver_int_t,
16221            dA: *mut cuComplex,
16222            ldda: cusolver_int_t,
16223            dB: *mut cuComplex,
16224            lddb: cusolver_int_t,
16225            dX: *mut cuComplex,
16226            lddx: cusolver_int_t,
16227            dWorkspace: *mut ::core::ffi::c_void,
16228            lwork_bytes: *mut usize,
16229        ) -> cusolverStatus_t,
16230        pub cusolverDnCCgesv: unsafe extern "C" fn(
16231            handle: cusolverDnHandle_t,
16232            n: cusolver_int_t,
16233            nrhs: cusolver_int_t,
16234            dA: *mut cuComplex,
16235            ldda: cusolver_int_t,
16236            dipiv: *mut cusolver_int_t,
16237            dB: *mut cuComplex,
16238            lddb: cusolver_int_t,
16239            dX: *mut cuComplex,
16240            lddx: cusolver_int_t,
16241            dWorkspace: *mut ::core::ffi::c_void,
16242            lwork_bytes: usize,
16243            iter: *mut cusolver_int_t,
16244            d_info: *mut cusolver_int_t,
16245        ) -> cusolverStatus_t,
16246        pub cusolverDnCCgesv_bufferSize: unsafe extern "C" fn(
16247            handle: cusolverDnHandle_t,
16248            n: cusolver_int_t,
16249            nrhs: cusolver_int_t,
16250            dA: *mut cuComplex,
16251            ldda: cusolver_int_t,
16252            dipiv: *mut cusolver_int_t,
16253            dB: *mut cuComplex,
16254            lddb: cusolver_int_t,
16255            dX: *mut cuComplex,
16256            lddx: cusolver_int_t,
16257            dWorkspace: *mut ::core::ffi::c_void,
16258            lwork_bytes: *mut usize,
16259        ) -> cusolverStatus_t,
16260        pub cusolverDnCEgels: unsafe extern "C" fn(
16261            handle: cusolverDnHandle_t,
16262            m: cusolver_int_t,
16263            n: cusolver_int_t,
16264            nrhs: cusolver_int_t,
16265            dA: *mut cuComplex,
16266            ldda: cusolver_int_t,
16267            dB: *mut cuComplex,
16268            lddb: cusolver_int_t,
16269            dX: *mut cuComplex,
16270            lddx: cusolver_int_t,
16271            dWorkspace: *mut ::core::ffi::c_void,
16272            lwork_bytes: usize,
16273            iter: *mut cusolver_int_t,
16274            d_info: *mut cusolver_int_t,
16275        ) -> cusolverStatus_t,
16276        pub cusolverDnCEgels_bufferSize: unsafe extern "C" fn(
16277            handle: cusolverDnHandle_t,
16278            m: cusolver_int_t,
16279            n: cusolver_int_t,
16280            nrhs: cusolver_int_t,
16281            dA: *mut cuComplex,
16282            ldda: cusolver_int_t,
16283            dB: *mut cuComplex,
16284            lddb: cusolver_int_t,
16285            dX: *mut cuComplex,
16286            lddx: cusolver_int_t,
16287            dWorkspace: *mut ::core::ffi::c_void,
16288            lwork_bytes: *mut usize,
16289        ) -> cusolverStatus_t,
16290        pub cusolverDnCEgesv: unsafe extern "C" fn(
16291            handle: cusolverDnHandle_t,
16292            n: cusolver_int_t,
16293            nrhs: cusolver_int_t,
16294            dA: *mut cuComplex,
16295            ldda: cusolver_int_t,
16296            dipiv: *mut cusolver_int_t,
16297            dB: *mut cuComplex,
16298            lddb: cusolver_int_t,
16299            dX: *mut cuComplex,
16300            lddx: cusolver_int_t,
16301            dWorkspace: *mut ::core::ffi::c_void,
16302            lwork_bytes: usize,
16303            iter: *mut cusolver_int_t,
16304            d_info: *mut cusolver_int_t,
16305        ) -> cusolverStatus_t,
16306        pub cusolverDnCEgesv_bufferSize: unsafe extern "C" fn(
16307            handle: cusolverDnHandle_t,
16308            n: cusolver_int_t,
16309            nrhs: cusolver_int_t,
16310            dA: *mut cuComplex,
16311            ldda: cusolver_int_t,
16312            dipiv: *mut cusolver_int_t,
16313            dB: *mut cuComplex,
16314            lddb: cusolver_int_t,
16315            dX: *mut cuComplex,
16316            lddx: cusolver_int_t,
16317            dWorkspace: *mut ::core::ffi::c_void,
16318            lwork_bytes: *mut usize,
16319        ) -> cusolverStatus_t,
16320        pub cusolverDnCKgels: unsafe extern "C" fn(
16321            handle: cusolverDnHandle_t,
16322            m: cusolver_int_t,
16323            n: cusolver_int_t,
16324            nrhs: cusolver_int_t,
16325            dA: *mut cuComplex,
16326            ldda: cusolver_int_t,
16327            dB: *mut cuComplex,
16328            lddb: cusolver_int_t,
16329            dX: *mut cuComplex,
16330            lddx: cusolver_int_t,
16331            dWorkspace: *mut ::core::ffi::c_void,
16332            lwork_bytes: usize,
16333            iter: *mut cusolver_int_t,
16334            d_info: *mut cusolver_int_t,
16335        ) -> cusolverStatus_t,
16336        pub cusolverDnCKgels_bufferSize: unsafe extern "C" fn(
16337            handle: cusolverDnHandle_t,
16338            m: cusolver_int_t,
16339            n: cusolver_int_t,
16340            nrhs: cusolver_int_t,
16341            dA: *mut cuComplex,
16342            ldda: cusolver_int_t,
16343            dB: *mut cuComplex,
16344            lddb: cusolver_int_t,
16345            dX: *mut cuComplex,
16346            lddx: cusolver_int_t,
16347            dWorkspace: *mut ::core::ffi::c_void,
16348            lwork_bytes: *mut usize,
16349        ) -> cusolverStatus_t,
16350        pub cusolverDnCKgesv: unsafe extern "C" fn(
16351            handle: cusolverDnHandle_t,
16352            n: cusolver_int_t,
16353            nrhs: cusolver_int_t,
16354            dA: *mut cuComplex,
16355            ldda: cusolver_int_t,
16356            dipiv: *mut cusolver_int_t,
16357            dB: *mut cuComplex,
16358            lddb: cusolver_int_t,
16359            dX: *mut cuComplex,
16360            lddx: cusolver_int_t,
16361            dWorkspace: *mut ::core::ffi::c_void,
16362            lwork_bytes: usize,
16363            iter: *mut cusolver_int_t,
16364            d_info: *mut cusolver_int_t,
16365        ) -> cusolverStatus_t,
16366        pub cusolverDnCKgesv_bufferSize: unsafe extern "C" fn(
16367            handle: cusolverDnHandle_t,
16368            n: cusolver_int_t,
16369            nrhs: cusolver_int_t,
16370            dA: *mut cuComplex,
16371            ldda: cusolver_int_t,
16372            dipiv: *mut cusolver_int_t,
16373            dB: *mut cuComplex,
16374            lddb: cusolver_int_t,
16375            dX: *mut cuComplex,
16376            lddx: cusolver_int_t,
16377            dWorkspace: *mut ::core::ffi::c_void,
16378            lwork_bytes: *mut usize,
16379        ) -> cusolverStatus_t,
16380        pub cusolverDnCYgels: unsafe extern "C" fn(
16381            handle: cusolverDnHandle_t,
16382            m: cusolver_int_t,
16383            n: cusolver_int_t,
16384            nrhs: cusolver_int_t,
16385            dA: *mut cuComplex,
16386            ldda: cusolver_int_t,
16387            dB: *mut cuComplex,
16388            lddb: cusolver_int_t,
16389            dX: *mut cuComplex,
16390            lddx: cusolver_int_t,
16391            dWorkspace: *mut ::core::ffi::c_void,
16392            lwork_bytes: usize,
16393            iter: *mut cusolver_int_t,
16394            d_info: *mut cusolver_int_t,
16395        ) -> cusolverStatus_t,
16396        pub cusolverDnCYgels_bufferSize: unsafe extern "C" fn(
16397            handle: cusolverDnHandle_t,
16398            m: cusolver_int_t,
16399            n: cusolver_int_t,
16400            nrhs: cusolver_int_t,
16401            dA: *mut cuComplex,
16402            ldda: cusolver_int_t,
16403            dB: *mut cuComplex,
16404            lddb: cusolver_int_t,
16405            dX: *mut cuComplex,
16406            lddx: cusolver_int_t,
16407            dWorkspace: *mut ::core::ffi::c_void,
16408            lwork_bytes: *mut usize,
16409        ) -> cusolverStatus_t,
16410        pub cusolverDnCYgesv: unsafe extern "C" fn(
16411            handle: cusolverDnHandle_t,
16412            n: cusolver_int_t,
16413            nrhs: cusolver_int_t,
16414            dA: *mut cuComplex,
16415            ldda: cusolver_int_t,
16416            dipiv: *mut cusolver_int_t,
16417            dB: *mut cuComplex,
16418            lddb: cusolver_int_t,
16419            dX: *mut cuComplex,
16420            lddx: cusolver_int_t,
16421            dWorkspace: *mut ::core::ffi::c_void,
16422            lwork_bytes: usize,
16423            iter: *mut cusolver_int_t,
16424            d_info: *mut cusolver_int_t,
16425        ) -> cusolverStatus_t,
16426        pub cusolverDnCYgesv_bufferSize: unsafe extern "C" fn(
16427            handle: cusolverDnHandle_t,
16428            n: cusolver_int_t,
16429            nrhs: cusolver_int_t,
16430            dA: *mut cuComplex,
16431            ldda: cusolver_int_t,
16432            dipiv: *mut cusolver_int_t,
16433            dB: *mut cuComplex,
16434            lddb: cusolver_int_t,
16435            dX: *mut cuComplex,
16436            lddx: cusolver_int_t,
16437            dWorkspace: *mut ::core::ffi::c_void,
16438            lwork_bytes: *mut usize,
16439        ) -> cusolverStatus_t,
16440        pub cusolverDnCgebrd: unsafe extern "C" fn(
16441            handle: cusolverDnHandle_t,
16442            m: ::core::ffi::c_int,
16443            n: ::core::ffi::c_int,
16444            A: *mut cuComplex,
16445            lda: ::core::ffi::c_int,
16446            D: *mut f32,
16447            E: *mut f32,
16448            TAUQ: *mut cuComplex,
16449            TAUP: *mut cuComplex,
16450            Work: *mut cuComplex,
16451            Lwork: ::core::ffi::c_int,
16452            devInfo: *mut ::core::ffi::c_int,
16453        ) -> cusolverStatus_t,
16454        pub cusolverDnCgebrd_bufferSize: unsafe extern "C" fn(
16455            handle: cusolverDnHandle_t,
16456            m: ::core::ffi::c_int,
16457            n: ::core::ffi::c_int,
16458            Lwork: *mut ::core::ffi::c_int,
16459        ) -> cusolverStatus_t,
16460        pub cusolverDnCgeqrf: unsafe extern "C" fn(
16461            handle: cusolverDnHandle_t,
16462            m: ::core::ffi::c_int,
16463            n: ::core::ffi::c_int,
16464            A: *mut cuComplex,
16465            lda: ::core::ffi::c_int,
16466            TAU: *mut cuComplex,
16467            Workspace: *mut cuComplex,
16468            Lwork: ::core::ffi::c_int,
16469            devInfo: *mut ::core::ffi::c_int,
16470        ) -> cusolverStatus_t,
16471        pub cusolverDnCgeqrf_bufferSize: unsafe extern "C" fn(
16472            handle: cusolverDnHandle_t,
16473            m: ::core::ffi::c_int,
16474            n: ::core::ffi::c_int,
16475            A: *mut cuComplex,
16476            lda: ::core::ffi::c_int,
16477            lwork: *mut ::core::ffi::c_int,
16478        ) -> cusolverStatus_t,
16479        pub cusolverDnCgesvd: unsafe extern "C" fn(
16480            handle: cusolverDnHandle_t,
16481            jobu: ::core::ffi::c_schar,
16482            jobvt: ::core::ffi::c_schar,
16483            m: ::core::ffi::c_int,
16484            n: ::core::ffi::c_int,
16485            A: *mut cuComplex,
16486            lda: ::core::ffi::c_int,
16487            S: *mut f32,
16488            U: *mut cuComplex,
16489            ldu: ::core::ffi::c_int,
16490            VT: *mut cuComplex,
16491            ldvt: ::core::ffi::c_int,
16492            work: *mut cuComplex,
16493            lwork: ::core::ffi::c_int,
16494            rwork: *mut f32,
16495            info: *mut ::core::ffi::c_int,
16496        ) -> cusolverStatus_t,
16497        pub cusolverDnCgesvd_bufferSize: unsafe extern "C" fn(
16498            handle: cusolverDnHandle_t,
16499            m: ::core::ffi::c_int,
16500            n: ::core::ffi::c_int,
16501            lwork: *mut ::core::ffi::c_int,
16502        ) -> cusolverStatus_t,
16503        pub cusolverDnCgesvdaStridedBatched: unsafe extern "C" fn(
16504            handle: cusolverDnHandle_t,
16505            jobz: cusolverEigMode_t,
16506            rank: ::core::ffi::c_int,
16507            m: ::core::ffi::c_int,
16508            n: ::core::ffi::c_int,
16509            d_A: *const cuComplex,
16510            lda: ::core::ffi::c_int,
16511            strideA: ::core::ffi::c_longlong,
16512            d_S: *mut f32,
16513            strideS: ::core::ffi::c_longlong,
16514            d_U: *mut cuComplex,
16515            ldu: ::core::ffi::c_int,
16516            strideU: ::core::ffi::c_longlong,
16517            d_V: *mut cuComplex,
16518            ldv: ::core::ffi::c_int,
16519            strideV: ::core::ffi::c_longlong,
16520            d_work: *mut cuComplex,
16521            lwork: ::core::ffi::c_int,
16522            d_info: *mut ::core::ffi::c_int,
16523            h_R_nrmF: *mut f64,
16524            batchSize: ::core::ffi::c_int,
16525        ) -> cusolverStatus_t,
16526        pub cusolverDnCgesvdaStridedBatched_bufferSize: unsafe extern "C" fn(
16527            handle: cusolverDnHandle_t,
16528            jobz: cusolverEigMode_t,
16529            rank: ::core::ffi::c_int,
16530            m: ::core::ffi::c_int,
16531            n: ::core::ffi::c_int,
16532            d_A: *const cuComplex,
16533            lda: ::core::ffi::c_int,
16534            strideA: ::core::ffi::c_longlong,
16535            d_S: *const f32,
16536            strideS: ::core::ffi::c_longlong,
16537            d_U: *const cuComplex,
16538            ldu: ::core::ffi::c_int,
16539            strideU: ::core::ffi::c_longlong,
16540            d_V: *const cuComplex,
16541            ldv: ::core::ffi::c_int,
16542            strideV: ::core::ffi::c_longlong,
16543            lwork: *mut ::core::ffi::c_int,
16544            batchSize: ::core::ffi::c_int,
16545        )
16546            -> cusolverStatus_t,
16547        pub cusolverDnCgesvdj: unsafe extern "C" fn(
16548            handle: cusolverDnHandle_t,
16549            jobz: cusolverEigMode_t,
16550            econ: ::core::ffi::c_int,
16551            m: ::core::ffi::c_int,
16552            n: ::core::ffi::c_int,
16553            A: *mut cuComplex,
16554            lda: ::core::ffi::c_int,
16555            S: *mut f32,
16556            U: *mut cuComplex,
16557            ldu: ::core::ffi::c_int,
16558            V: *mut cuComplex,
16559            ldv: ::core::ffi::c_int,
16560            work: *mut cuComplex,
16561            lwork: ::core::ffi::c_int,
16562            info: *mut ::core::ffi::c_int,
16563            params: gesvdjInfo_t,
16564        ) -> cusolverStatus_t,
16565        pub cusolverDnCgesvdjBatched: unsafe extern "C" fn(
16566            handle: cusolverDnHandle_t,
16567            jobz: cusolverEigMode_t,
16568            m: ::core::ffi::c_int,
16569            n: ::core::ffi::c_int,
16570            A: *mut cuComplex,
16571            lda: ::core::ffi::c_int,
16572            S: *mut f32,
16573            U: *mut cuComplex,
16574            ldu: ::core::ffi::c_int,
16575            V: *mut cuComplex,
16576            ldv: ::core::ffi::c_int,
16577            work: *mut cuComplex,
16578            lwork: ::core::ffi::c_int,
16579            info: *mut ::core::ffi::c_int,
16580            params: gesvdjInfo_t,
16581            batchSize: ::core::ffi::c_int,
16582        ) -> cusolverStatus_t,
16583        pub cusolverDnCgesvdjBatched_bufferSize: unsafe extern "C" fn(
16584            handle: cusolverDnHandle_t,
16585            jobz: cusolverEigMode_t,
16586            m: ::core::ffi::c_int,
16587            n: ::core::ffi::c_int,
16588            A: *const cuComplex,
16589            lda: ::core::ffi::c_int,
16590            S: *const f32,
16591            U: *const cuComplex,
16592            ldu: ::core::ffi::c_int,
16593            V: *const cuComplex,
16594            ldv: ::core::ffi::c_int,
16595            lwork: *mut ::core::ffi::c_int,
16596            params: gesvdjInfo_t,
16597            batchSize: ::core::ffi::c_int,
16598        ) -> cusolverStatus_t,
16599        pub cusolverDnCgesvdj_bufferSize: unsafe extern "C" fn(
16600            handle: cusolverDnHandle_t,
16601            jobz: cusolverEigMode_t,
16602            econ: ::core::ffi::c_int,
16603            m: ::core::ffi::c_int,
16604            n: ::core::ffi::c_int,
16605            A: *const cuComplex,
16606            lda: ::core::ffi::c_int,
16607            S: *const f32,
16608            U: *const cuComplex,
16609            ldu: ::core::ffi::c_int,
16610            V: *const cuComplex,
16611            ldv: ::core::ffi::c_int,
16612            lwork: *mut ::core::ffi::c_int,
16613            params: gesvdjInfo_t,
16614        ) -> cusolverStatus_t,
16615        pub cusolverDnCgetrf: unsafe extern "C" fn(
16616            handle: cusolverDnHandle_t,
16617            m: ::core::ffi::c_int,
16618            n: ::core::ffi::c_int,
16619            A: *mut cuComplex,
16620            lda: ::core::ffi::c_int,
16621            Workspace: *mut cuComplex,
16622            devIpiv: *mut ::core::ffi::c_int,
16623            devInfo: *mut ::core::ffi::c_int,
16624        ) -> cusolverStatus_t,
16625        pub cusolverDnCgetrf_bufferSize: unsafe extern "C" fn(
16626            handle: cusolverDnHandle_t,
16627            m: ::core::ffi::c_int,
16628            n: ::core::ffi::c_int,
16629            A: *mut cuComplex,
16630            lda: ::core::ffi::c_int,
16631            Lwork: *mut ::core::ffi::c_int,
16632        ) -> cusolverStatus_t,
16633        pub cusolverDnCgetrs: unsafe extern "C" fn(
16634            handle: cusolverDnHandle_t,
16635            trans: cublasOperation_t,
16636            n: ::core::ffi::c_int,
16637            nrhs: ::core::ffi::c_int,
16638            A: *const cuComplex,
16639            lda: ::core::ffi::c_int,
16640            devIpiv: *const ::core::ffi::c_int,
16641            B: *mut cuComplex,
16642            ldb: ::core::ffi::c_int,
16643            devInfo: *mut ::core::ffi::c_int,
16644        ) -> cusolverStatus_t,
16645        pub cusolverDnCheevd: unsafe extern "C" fn(
16646            handle: cusolverDnHandle_t,
16647            jobz: cusolverEigMode_t,
16648            uplo: cublasFillMode_t,
16649            n: ::core::ffi::c_int,
16650            A: *mut cuComplex,
16651            lda: ::core::ffi::c_int,
16652            W: *mut f32,
16653            work: *mut cuComplex,
16654            lwork: ::core::ffi::c_int,
16655            info: *mut ::core::ffi::c_int,
16656        ) -> cusolverStatus_t,
16657        pub cusolverDnCheevd_bufferSize: unsafe extern "C" fn(
16658            handle: cusolverDnHandle_t,
16659            jobz: cusolverEigMode_t,
16660            uplo: cublasFillMode_t,
16661            n: ::core::ffi::c_int,
16662            A: *const cuComplex,
16663            lda: ::core::ffi::c_int,
16664            W: *const f32,
16665            lwork: *mut ::core::ffi::c_int,
16666        ) -> cusolverStatus_t,
16667        pub cusolverDnCheevdx: unsafe extern "C" fn(
16668            handle: cusolverDnHandle_t,
16669            jobz: cusolverEigMode_t,
16670            range: cusolverEigRange_t,
16671            uplo: cublasFillMode_t,
16672            n: ::core::ffi::c_int,
16673            A: *mut cuComplex,
16674            lda: ::core::ffi::c_int,
16675            vl: f32,
16676            vu: f32,
16677            il: ::core::ffi::c_int,
16678            iu: ::core::ffi::c_int,
16679            meig: *mut ::core::ffi::c_int,
16680            W: *mut f32,
16681            work: *mut cuComplex,
16682            lwork: ::core::ffi::c_int,
16683            info: *mut ::core::ffi::c_int,
16684        ) -> cusolverStatus_t,
16685        pub cusolverDnCheevdx_bufferSize: unsafe extern "C" fn(
16686            handle: cusolverDnHandle_t,
16687            jobz: cusolverEigMode_t,
16688            range: cusolverEigRange_t,
16689            uplo: cublasFillMode_t,
16690            n: ::core::ffi::c_int,
16691            A: *const cuComplex,
16692            lda: ::core::ffi::c_int,
16693            vl: f32,
16694            vu: f32,
16695            il: ::core::ffi::c_int,
16696            iu: ::core::ffi::c_int,
16697            meig: *mut ::core::ffi::c_int,
16698            W: *const f32,
16699            lwork: *mut ::core::ffi::c_int,
16700        ) -> cusolverStatus_t,
16701        pub cusolverDnCheevj: unsafe extern "C" fn(
16702            handle: cusolverDnHandle_t,
16703            jobz: cusolverEigMode_t,
16704            uplo: cublasFillMode_t,
16705            n: ::core::ffi::c_int,
16706            A: *mut cuComplex,
16707            lda: ::core::ffi::c_int,
16708            W: *mut f32,
16709            work: *mut cuComplex,
16710            lwork: ::core::ffi::c_int,
16711            info: *mut ::core::ffi::c_int,
16712            params: syevjInfo_t,
16713        ) -> cusolverStatus_t,
16714        pub cusolverDnCheevjBatched: unsafe extern "C" fn(
16715            handle: cusolverDnHandle_t,
16716            jobz: cusolverEigMode_t,
16717            uplo: cublasFillMode_t,
16718            n: ::core::ffi::c_int,
16719            A: *mut cuComplex,
16720            lda: ::core::ffi::c_int,
16721            W: *mut f32,
16722            work: *mut cuComplex,
16723            lwork: ::core::ffi::c_int,
16724            info: *mut ::core::ffi::c_int,
16725            params: syevjInfo_t,
16726            batchSize: ::core::ffi::c_int,
16727        ) -> cusolverStatus_t,
16728        pub cusolverDnCheevjBatched_bufferSize: unsafe extern "C" fn(
16729            handle: cusolverDnHandle_t,
16730            jobz: cusolverEigMode_t,
16731            uplo: cublasFillMode_t,
16732            n: ::core::ffi::c_int,
16733            A: *const cuComplex,
16734            lda: ::core::ffi::c_int,
16735            W: *const f32,
16736            lwork: *mut ::core::ffi::c_int,
16737            params: syevjInfo_t,
16738            batchSize: ::core::ffi::c_int,
16739        ) -> cusolverStatus_t,
16740        pub cusolverDnCheevj_bufferSize: unsafe extern "C" fn(
16741            handle: cusolverDnHandle_t,
16742            jobz: cusolverEigMode_t,
16743            uplo: cublasFillMode_t,
16744            n: ::core::ffi::c_int,
16745            A: *const cuComplex,
16746            lda: ::core::ffi::c_int,
16747            W: *const f32,
16748            lwork: *mut ::core::ffi::c_int,
16749            params: syevjInfo_t,
16750        ) -> cusolverStatus_t,
16751        pub cusolverDnChegvd: unsafe extern "C" fn(
16752            handle: cusolverDnHandle_t,
16753            itype: cusolverEigType_t,
16754            jobz: cusolverEigMode_t,
16755            uplo: cublasFillMode_t,
16756            n: ::core::ffi::c_int,
16757            A: *mut cuComplex,
16758            lda: ::core::ffi::c_int,
16759            B: *mut cuComplex,
16760            ldb: ::core::ffi::c_int,
16761            W: *mut f32,
16762            work: *mut cuComplex,
16763            lwork: ::core::ffi::c_int,
16764            info: *mut ::core::ffi::c_int,
16765        ) -> cusolverStatus_t,
16766        pub cusolverDnChegvd_bufferSize: unsafe extern "C" fn(
16767            handle: cusolverDnHandle_t,
16768            itype: cusolverEigType_t,
16769            jobz: cusolverEigMode_t,
16770            uplo: cublasFillMode_t,
16771            n: ::core::ffi::c_int,
16772            A: *const cuComplex,
16773            lda: ::core::ffi::c_int,
16774            B: *const cuComplex,
16775            ldb: ::core::ffi::c_int,
16776            W: *const f32,
16777            lwork: *mut ::core::ffi::c_int,
16778        ) -> cusolverStatus_t,
16779        pub cusolverDnChegvdx: unsafe extern "C" fn(
16780            handle: cusolverDnHandle_t,
16781            itype: cusolverEigType_t,
16782            jobz: cusolverEigMode_t,
16783            range: cusolverEigRange_t,
16784            uplo: cublasFillMode_t,
16785            n: ::core::ffi::c_int,
16786            A: *mut cuComplex,
16787            lda: ::core::ffi::c_int,
16788            B: *mut cuComplex,
16789            ldb: ::core::ffi::c_int,
16790            vl: f32,
16791            vu: f32,
16792            il: ::core::ffi::c_int,
16793            iu: ::core::ffi::c_int,
16794            meig: *mut ::core::ffi::c_int,
16795            W: *mut f32,
16796            work: *mut cuComplex,
16797            lwork: ::core::ffi::c_int,
16798            info: *mut ::core::ffi::c_int,
16799        ) -> cusolverStatus_t,
16800        pub cusolverDnChegvdx_bufferSize: unsafe extern "C" fn(
16801            handle: cusolverDnHandle_t,
16802            itype: cusolverEigType_t,
16803            jobz: cusolverEigMode_t,
16804            range: cusolverEigRange_t,
16805            uplo: cublasFillMode_t,
16806            n: ::core::ffi::c_int,
16807            A: *const cuComplex,
16808            lda: ::core::ffi::c_int,
16809            B: *const cuComplex,
16810            ldb: ::core::ffi::c_int,
16811            vl: f32,
16812            vu: f32,
16813            il: ::core::ffi::c_int,
16814            iu: ::core::ffi::c_int,
16815            meig: *mut ::core::ffi::c_int,
16816            W: *const f32,
16817            lwork: *mut ::core::ffi::c_int,
16818        ) -> cusolverStatus_t,
16819        pub cusolverDnChegvj: unsafe extern "C" fn(
16820            handle: cusolverDnHandle_t,
16821            itype: cusolverEigType_t,
16822            jobz: cusolverEigMode_t,
16823            uplo: cublasFillMode_t,
16824            n: ::core::ffi::c_int,
16825            A: *mut cuComplex,
16826            lda: ::core::ffi::c_int,
16827            B: *mut cuComplex,
16828            ldb: ::core::ffi::c_int,
16829            W: *mut f32,
16830            work: *mut cuComplex,
16831            lwork: ::core::ffi::c_int,
16832            info: *mut ::core::ffi::c_int,
16833            params: syevjInfo_t,
16834        ) -> cusolverStatus_t,
16835        pub cusolverDnChegvj_bufferSize: unsafe extern "C" fn(
16836            handle: cusolverDnHandle_t,
16837            itype: cusolverEigType_t,
16838            jobz: cusolverEigMode_t,
16839            uplo: cublasFillMode_t,
16840            n: ::core::ffi::c_int,
16841            A: *const cuComplex,
16842            lda: ::core::ffi::c_int,
16843            B: *const cuComplex,
16844            ldb: ::core::ffi::c_int,
16845            W: *const f32,
16846            lwork: *mut ::core::ffi::c_int,
16847            params: syevjInfo_t,
16848        ) -> cusolverStatus_t,
16849        pub cusolverDnChetrd: unsafe extern "C" fn(
16850            handle: cusolverDnHandle_t,
16851            uplo: cublasFillMode_t,
16852            n: ::core::ffi::c_int,
16853            A: *mut cuComplex,
16854            lda: ::core::ffi::c_int,
16855            d: *mut f32,
16856            e: *mut f32,
16857            tau: *mut cuComplex,
16858            work: *mut cuComplex,
16859            lwork: ::core::ffi::c_int,
16860            info: *mut ::core::ffi::c_int,
16861        ) -> cusolverStatus_t,
16862        pub cusolverDnChetrd_bufferSize: unsafe extern "C" fn(
16863            handle: cusolverDnHandle_t,
16864            uplo: cublasFillMode_t,
16865            n: ::core::ffi::c_int,
16866            A: *const cuComplex,
16867            lda: ::core::ffi::c_int,
16868            d: *const f32,
16869            e: *const f32,
16870            tau: *const cuComplex,
16871            lwork: *mut ::core::ffi::c_int,
16872        ) -> cusolverStatus_t,
16873        pub cusolverDnClaswp: unsafe extern "C" fn(
16874            handle: cusolverDnHandle_t,
16875            n: ::core::ffi::c_int,
16876            A: *mut cuComplex,
16877            lda: ::core::ffi::c_int,
16878            k1: ::core::ffi::c_int,
16879            k2: ::core::ffi::c_int,
16880            devIpiv: *const ::core::ffi::c_int,
16881            incx: ::core::ffi::c_int,
16882        ) -> cusolverStatus_t,
16883        pub cusolverDnClauum: unsafe extern "C" fn(
16884            handle: cusolverDnHandle_t,
16885            uplo: cublasFillMode_t,
16886            n: ::core::ffi::c_int,
16887            A: *mut cuComplex,
16888            lda: ::core::ffi::c_int,
16889            work: *mut cuComplex,
16890            lwork: ::core::ffi::c_int,
16891            devInfo: *mut ::core::ffi::c_int,
16892        ) -> cusolverStatus_t,
16893        pub cusolverDnClauum_bufferSize: unsafe extern "C" fn(
16894            handle: cusolverDnHandle_t,
16895            uplo: cublasFillMode_t,
16896            n: ::core::ffi::c_int,
16897            A: *mut cuComplex,
16898            lda: ::core::ffi::c_int,
16899            lwork: *mut ::core::ffi::c_int,
16900        ) -> cusolverStatus_t,
16901        pub cusolverDnCpotrf: unsafe extern "C" fn(
16902            handle: cusolverDnHandle_t,
16903            uplo: cublasFillMode_t,
16904            n: ::core::ffi::c_int,
16905            A: *mut cuComplex,
16906            lda: ::core::ffi::c_int,
16907            Workspace: *mut cuComplex,
16908            Lwork: ::core::ffi::c_int,
16909            devInfo: *mut ::core::ffi::c_int,
16910        ) -> cusolverStatus_t,
16911        pub cusolverDnCpotrfBatched: unsafe extern "C" fn(
16912            handle: cusolverDnHandle_t,
16913            uplo: cublasFillMode_t,
16914            n: ::core::ffi::c_int,
16915            Aarray: *mut *mut cuComplex,
16916            lda: ::core::ffi::c_int,
16917            infoArray: *mut ::core::ffi::c_int,
16918            batchSize: ::core::ffi::c_int,
16919        ) -> cusolverStatus_t,
16920        pub cusolverDnCpotrf_bufferSize: unsafe extern "C" fn(
16921            handle: cusolverDnHandle_t,
16922            uplo: cublasFillMode_t,
16923            n: ::core::ffi::c_int,
16924            A: *mut cuComplex,
16925            lda: ::core::ffi::c_int,
16926            Lwork: *mut ::core::ffi::c_int,
16927        ) -> cusolverStatus_t,
16928        pub cusolverDnCpotri: unsafe extern "C" fn(
16929            handle: cusolverDnHandle_t,
16930            uplo: cublasFillMode_t,
16931            n: ::core::ffi::c_int,
16932            A: *mut cuComplex,
16933            lda: ::core::ffi::c_int,
16934            work: *mut cuComplex,
16935            lwork: ::core::ffi::c_int,
16936            devInfo: *mut ::core::ffi::c_int,
16937        ) -> cusolverStatus_t,
16938        pub cusolverDnCpotri_bufferSize: unsafe extern "C" fn(
16939            handle: cusolverDnHandle_t,
16940            uplo: cublasFillMode_t,
16941            n: ::core::ffi::c_int,
16942            A: *mut cuComplex,
16943            lda: ::core::ffi::c_int,
16944            lwork: *mut ::core::ffi::c_int,
16945        ) -> cusolverStatus_t,
16946        pub cusolverDnCpotrs: unsafe extern "C" fn(
16947            handle: cusolverDnHandle_t,
16948            uplo: cublasFillMode_t,
16949            n: ::core::ffi::c_int,
16950            nrhs: ::core::ffi::c_int,
16951            A: *const cuComplex,
16952            lda: ::core::ffi::c_int,
16953            B: *mut cuComplex,
16954            ldb: ::core::ffi::c_int,
16955            devInfo: *mut ::core::ffi::c_int,
16956        ) -> cusolverStatus_t,
16957        pub cusolverDnCpotrsBatched: unsafe extern "C" fn(
16958            handle: cusolverDnHandle_t,
16959            uplo: cublasFillMode_t,
16960            n: ::core::ffi::c_int,
16961            nrhs: ::core::ffi::c_int,
16962            A: *mut *mut cuComplex,
16963            lda: ::core::ffi::c_int,
16964            B: *mut *mut cuComplex,
16965            ldb: ::core::ffi::c_int,
16966            d_info: *mut ::core::ffi::c_int,
16967            batchSize: ::core::ffi::c_int,
16968        ) -> cusolverStatus_t,
16969        pub cusolverDnCreate:
16970            unsafe extern "C" fn(handle: *mut cusolverDnHandle_t) -> cusolverStatus_t,
16971        pub cusolverDnCreateGesvdjInfo:
16972            unsafe extern "C" fn(info: *mut gesvdjInfo_t) -> cusolverStatus_t,
16973        pub cusolverDnCreateParams:
16974            unsafe extern "C" fn(params: *mut cusolverDnParams_t) -> cusolverStatus_t,
16975        pub cusolverDnCreateSyevjInfo:
16976            unsafe extern "C" fn(info: *mut syevjInfo_t) -> cusolverStatus_t,
16977        pub cusolverDnCsytrf: unsafe extern "C" fn(
16978            handle: cusolverDnHandle_t,
16979            uplo: cublasFillMode_t,
16980            n: ::core::ffi::c_int,
16981            A: *mut cuComplex,
16982            lda: ::core::ffi::c_int,
16983            ipiv: *mut ::core::ffi::c_int,
16984            work: *mut cuComplex,
16985            lwork: ::core::ffi::c_int,
16986            info: *mut ::core::ffi::c_int,
16987        ) -> cusolverStatus_t,
16988        pub cusolverDnCsytrf_bufferSize: unsafe extern "C" fn(
16989            handle: cusolverDnHandle_t,
16990            n: ::core::ffi::c_int,
16991            A: *mut cuComplex,
16992            lda: ::core::ffi::c_int,
16993            lwork: *mut ::core::ffi::c_int,
16994        ) -> cusolverStatus_t,
16995        pub cusolverDnCsytri: unsafe extern "C" fn(
16996            handle: cusolverDnHandle_t,
16997            uplo: cublasFillMode_t,
16998            n: ::core::ffi::c_int,
16999            A: *mut cuComplex,
17000            lda: ::core::ffi::c_int,
17001            ipiv: *const ::core::ffi::c_int,
17002            work: *mut cuComplex,
17003            lwork: ::core::ffi::c_int,
17004            info: *mut ::core::ffi::c_int,
17005        ) -> cusolverStatus_t,
17006        pub cusolverDnCsytri_bufferSize: unsafe extern "C" fn(
17007            handle: cusolverDnHandle_t,
17008            uplo: cublasFillMode_t,
17009            n: ::core::ffi::c_int,
17010            A: *mut cuComplex,
17011            lda: ::core::ffi::c_int,
17012            ipiv: *const ::core::ffi::c_int,
17013            lwork: *mut ::core::ffi::c_int,
17014        ) -> cusolverStatus_t,
17015        pub cusolverDnCungbr: unsafe extern "C" fn(
17016            handle: cusolverDnHandle_t,
17017            side: cublasSideMode_t,
17018            m: ::core::ffi::c_int,
17019            n: ::core::ffi::c_int,
17020            k: ::core::ffi::c_int,
17021            A: *mut cuComplex,
17022            lda: ::core::ffi::c_int,
17023            tau: *const cuComplex,
17024            work: *mut cuComplex,
17025            lwork: ::core::ffi::c_int,
17026            info: *mut ::core::ffi::c_int,
17027        ) -> cusolverStatus_t,
17028        pub cusolverDnCungbr_bufferSize: unsafe extern "C" fn(
17029            handle: cusolverDnHandle_t,
17030            side: cublasSideMode_t,
17031            m: ::core::ffi::c_int,
17032            n: ::core::ffi::c_int,
17033            k: ::core::ffi::c_int,
17034            A: *const cuComplex,
17035            lda: ::core::ffi::c_int,
17036            tau: *const cuComplex,
17037            lwork: *mut ::core::ffi::c_int,
17038        ) -> cusolverStatus_t,
17039        pub cusolverDnCungqr: unsafe extern "C" fn(
17040            handle: cusolverDnHandle_t,
17041            m: ::core::ffi::c_int,
17042            n: ::core::ffi::c_int,
17043            k: ::core::ffi::c_int,
17044            A: *mut cuComplex,
17045            lda: ::core::ffi::c_int,
17046            tau: *const cuComplex,
17047            work: *mut cuComplex,
17048            lwork: ::core::ffi::c_int,
17049            info: *mut ::core::ffi::c_int,
17050        ) -> cusolverStatus_t,
17051        pub cusolverDnCungqr_bufferSize: unsafe extern "C" fn(
17052            handle: cusolverDnHandle_t,
17053            m: ::core::ffi::c_int,
17054            n: ::core::ffi::c_int,
17055            k: ::core::ffi::c_int,
17056            A: *const cuComplex,
17057            lda: ::core::ffi::c_int,
17058            tau: *const cuComplex,
17059            lwork: *mut ::core::ffi::c_int,
17060        ) -> cusolverStatus_t,
17061        pub cusolverDnCungtr: unsafe extern "C" fn(
17062            handle: cusolverDnHandle_t,
17063            uplo: cublasFillMode_t,
17064            n: ::core::ffi::c_int,
17065            A: *mut cuComplex,
17066            lda: ::core::ffi::c_int,
17067            tau: *const cuComplex,
17068            work: *mut cuComplex,
17069            lwork: ::core::ffi::c_int,
17070            info: *mut ::core::ffi::c_int,
17071        ) -> cusolverStatus_t,
17072        pub cusolverDnCungtr_bufferSize: unsafe extern "C" fn(
17073            handle: cusolverDnHandle_t,
17074            uplo: cublasFillMode_t,
17075            n: ::core::ffi::c_int,
17076            A: *const cuComplex,
17077            lda: ::core::ffi::c_int,
17078            tau: *const cuComplex,
17079            lwork: *mut ::core::ffi::c_int,
17080        ) -> cusolverStatus_t,
17081        pub cusolverDnCunmqr: unsafe extern "C" fn(
17082            handle: cusolverDnHandle_t,
17083            side: cublasSideMode_t,
17084            trans: cublasOperation_t,
17085            m: ::core::ffi::c_int,
17086            n: ::core::ffi::c_int,
17087            k: ::core::ffi::c_int,
17088            A: *const cuComplex,
17089            lda: ::core::ffi::c_int,
17090            tau: *const cuComplex,
17091            C: *mut cuComplex,
17092            ldc: ::core::ffi::c_int,
17093            work: *mut cuComplex,
17094            lwork: ::core::ffi::c_int,
17095            devInfo: *mut ::core::ffi::c_int,
17096        ) -> cusolverStatus_t,
17097        pub cusolverDnCunmqr_bufferSize: unsafe extern "C" fn(
17098            handle: cusolverDnHandle_t,
17099            side: cublasSideMode_t,
17100            trans: cublasOperation_t,
17101            m: ::core::ffi::c_int,
17102            n: ::core::ffi::c_int,
17103            k: ::core::ffi::c_int,
17104            A: *const cuComplex,
17105            lda: ::core::ffi::c_int,
17106            tau: *const cuComplex,
17107            C: *const cuComplex,
17108            ldc: ::core::ffi::c_int,
17109            lwork: *mut ::core::ffi::c_int,
17110        ) -> cusolverStatus_t,
17111        pub cusolverDnCunmtr: unsafe extern "C" fn(
17112            handle: cusolverDnHandle_t,
17113            side: cublasSideMode_t,
17114            uplo: cublasFillMode_t,
17115            trans: cublasOperation_t,
17116            m: ::core::ffi::c_int,
17117            n: ::core::ffi::c_int,
17118            A: *mut cuComplex,
17119            lda: ::core::ffi::c_int,
17120            tau: *mut cuComplex,
17121            C: *mut cuComplex,
17122            ldc: ::core::ffi::c_int,
17123            work: *mut cuComplex,
17124            lwork: ::core::ffi::c_int,
17125            info: *mut ::core::ffi::c_int,
17126        ) -> cusolverStatus_t,
17127        pub cusolverDnCunmtr_bufferSize: unsafe extern "C" fn(
17128            handle: cusolverDnHandle_t,
17129            side: cublasSideMode_t,
17130            uplo: cublasFillMode_t,
17131            trans: cublasOperation_t,
17132            m: ::core::ffi::c_int,
17133            n: ::core::ffi::c_int,
17134            A: *const cuComplex,
17135            lda: ::core::ffi::c_int,
17136            tau: *const cuComplex,
17137            C: *const cuComplex,
17138            ldc: ::core::ffi::c_int,
17139            lwork: *mut ::core::ffi::c_int,
17140        ) -> cusolverStatus_t,
17141        pub cusolverDnDBgels: unsafe extern "C" fn(
17142            handle: cusolverDnHandle_t,
17143            m: cusolver_int_t,
17144            n: cusolver_int_t,
17145            nrhs: cusolver_int_t,
17146            dA: *mut f64,
17147            ldda: cusolver_int_t,
17148            dB: *mut f64,
17149            lddb: cusolver_int_t,
17150            dX: *mut f64,
17151            lddx: cusolver_int_t,
17152            dWorkspace: *mut ::core::ffi::c_void,
17153            lwork_bytes: usize,
17154            iter: *mut cusolver_int_t,
17155            d_info: *mut cusolver_int_t,
17156        ) -> cusolverStatus_t,
17157        pub cusolverDnDBgels_bufferSize: unsafe extern "C" fn(
17158            handle: cusolverDnHandle_t,
17159            m: cusolver_int_t,
17160            n: cusolver_int_t,
17161            nrhs: cusolver_int_t,
17162            dA: *mut f64,
17163            ldda: cusolver_int_t,
17164            dB: *mut f64,
17165            lddb: cusolver_int_t,
17166            dX: *mut f64,
17167            lddx: cusolver_int_t,
17168            dWorkspace: *mut ::core::ffi::c_void,
17169            lwork_bytes: *mut usize,
17170        ) -> cusolverStatus_t,
17171        pub cusolverDnDBgesv: unsafe extern "C" fn(
17172            handle: cusolverDnHandle_t,
17173            n: cusolver_int_t,
17174            nrhs: cusolver_int_t,
17175            dA: *mut f64,
17176            ldda: cusolver_int_t,
17177            dipiv: *mut cusolver_int_t,
17178            dB: *mut f64,
17179            lddb: cusolver_int_t,
17180            dX: *mut f64,
17181            lddx: cusolver_int_t,
17182            dWorkspace: *mut ::core::ffi::c_void,
17183            lwork_bytes: usize,
17184            iter: *mut cusolver_int_t,
17185            d_info: *mut cusolver_int_t,
17186        ) -> cusolverStatus_t,
17187        pub cusolverDnDBgesv_bufferSize: unsafe extern "C" fn(
17188            handle: cusolverDnHandle_t,
17189            n: cusolver_int_t,
17190            nrhs: cusolver_int_t,
17191            dA: *mut f64,
17192            ldda: cusolver_int_t,
17193            dipiv: *mut cusolver_int_t,
17194            dB: *mut f64,
17195            lddb: cusolver_int_t,
17196            dX: *mut f64,
17197            lddx: cusolver_int_t,
17198            dWorkspace: *mut ::core::ffi::c_void,
17199            lwork_bytes: *mut usize,
17200        ) -> cusolverStatus_t,
17201        pub cusolverDnDDgels: unsafe extern "C" fn(
17202            handle: cusolverDnHandle_t,
17203            m: cusolver_int_t,
17204            n: cusolver_int_t,
17205            nrhs: cusolver_int_t,
17206            dA: *mut f64,
17207            ldda: cusolver_int_t,
17208            dB: *mut f64,
17209            lddb: cusolver_int_t,
17210            dX: *mut f64,
17211            lddx: cusolver_int_t,
17212            dWorkspace: *mut ::core::ffi::c_void,
17213            lwork_bytes: usize,
17214            iter: *mut cusolver_int_t,
17215            d_info: *mut cusolver_int_t,
17216        ) -> cusolverStatus_t,
17217        pub cusolverDnDDgels_bufferSize: unsafe extern "C" fn(
17218            handle: cusolverDnHandle_t,
17219            m: cusolver_int_t,
17220            n: cusolver_int_t,
17221            nrhs: cusolver_int_t,
17222            dA: *mut f64,
17223            ldda: cusolver_int_t,
17224            dB: *mut f64,
17225            lddb: cusolver_int_t,
17226            dX: *mut f64,
17227            lddx: cusolver_int_t,
17228            dWorkspace: *mut ::core::ffi::c_void,
17229            lwork_bytes: *mut usize,
17230        ) -> cusolverStatus_t,
17231        pub cusolverDnDDgesv: unsafe extern "C" fn(
17232            handle: cusolverDnHandle_t,
17233            n: cusolver_int_t,
17234            nrhs: cusolver_int_t,
17235            dA: *mut f64,
17236            ldda: cusolver_int_t,
17237            dipiv: *mut cusolver_int_t,
17238            dB: *mut f64,
17239            lddb: cusolver_int_t,
17240            dX: *mut f64,
17241            lddx: cusolver_int_t,
17242            dWorkspace: *mut ::core::ffi::c_void,
17243            lwork_bytes: usize,
17244            iter: *mut cusolver_int_t,
17245            d_info: *mut cusolver_int_t,
17246        ) -> cusolverStatus_t,
17247        pub cusolverDnDDgesv_bufferSize: unsafe extern "C" fn(
17248            handle: cusolverDnHandle_t,
17249            n: cusolver_int_t,
17250            nrhs: cusolver_int_t,
17251            dA: *mut f64,
17252            ldda: cusolver_int_t,
17253            dipiv: *mut cusolver_int_t,
17254            dB: *mut f64,
17255            lddb: cusolver_int_t,
17256            dX: *mut f64,
17257            lddx: cusolver_int_t,
17258            dWorkspace: *mut ::core::ffi::c_void,
17259            lwork_bytes: *mut usize,
17260        ) -> cusolverStatus_t,
17261        pub cusolverDnDHgels: unsafe extern "C" fn(
17262            handle: cusolverDnHandle_t,
17263            m: cusolver_int_t,
17264            n: cusolver_int_t,
17265            nrhs: cusolver_int_t,
17266            dA: *mut f64,
17267            ldda: cusolver_int_t,
17268            dB: *mut f64,
17269            lddb: cusolver_int_t,
17270            dX: *mut f64,
17271            lddx: cusolver_int_t,
17272            dWorkspace: *mut ::core::ffi::c_void,
17273            lwork_bytes: usize,
17274            iter: *mut cusolver_int_t,
17275            d_info: *mut cusolver_int_t,
17276        ) -> cusolverStatus_t,
17277        pub cusolverDnDHgels_bufferSize: unsafe extern "C" fn(
17278            handle: cusolverDnHandle_t,
17279            m: cusolver_int_t,
17280            n: cusolver_int_t,
17281            nrhs: cusolver_int_t,
17282            dA: *mut f64,
17283            ldda: cusolver_int_t,
17284            dB: *mut f64,
17285            lddb: cusolver_int_t,
17286            dX: *mut f64,
17287            lddx: cusolver_int_t,
17288            dWorkspace: *mut ::core::ffi::c_void,
17289            lwork_bytes: *mut usize,
17290        ) -> cusolverStatus_t,
17291        pub cusolverDnDHgesv: unsafe extern "C" fn(
17292            handle: cusolverDnHandle_t,
17293            n: cusolver_int_t,
17294            nrhs: cusolver_int_t,
17295            dA: *mut f64,
17296            ldda: cusolver_int_t,
17297            dipiv: *mut cusolver_int_t,
17298            dB: *mut f64,
17299            lddb: cusolver_int_t,
17300            dX: *mut f64,
17301            lddx: cusolver_int_t,
17302            dWorkspace: *mut ::core::ffi::c_void,
17303            lwork_bytes: usize,
17304            iter: *mut cusolver_int_t,
17305            d_info: *mut cusolver_int_t,
17306        ) -> cusolverStatus_t,
17307        pub cusolverDnDHgesv_bufferSize: unsafe extern "C" fn(
17308            handle: cusolverDnHandle_t,
17309            n: cusolver_int_t,
17310            nrhs: cusolver_int_t,
17311            dA: *mut f64,
17312            ldda: cusolver_int_t,
17313            dipiv: *mut cusolver_int_t,
17314            dB: *mut f64,
17315            lddb: cusolver_int_t,
17316            dX: *mut f64,
17317            lddx: cusolver_int_t,
17318            dWorkspace: *mut ::core::ffi::c_void,
17319            lwork_bytes: *mut usize,
17320        ) -> cusolverStatus_t,
17321        pub cusolverDnDSgels: unsafe extern "C" fn(
17322            handle: cusolverDnHandle_t,
17323            m: cusolver_int_t,
17324            n: cusolver_int_t,
17325            nrhs: cusolver_int_t,
17326            dA: *mut f64,
17327            ldda: cusolver_int_t,
17328            dB: *mut f64,
17329            lddb: cusolver_int_t,
17330            dX: *mut f64,
17331            lddx: cusolver_int_t,
17332            dWorkspace: *mut ::core::ffi::c_void,
17333            lwork_bytes: usize,
17334            iter: *mut cusolver_int_t,
17335            d_info: *mut cusolver_int_t,
17336        ) -> cusolverStatus_t,
17337        pub cusolverDnDSgels_bufferSize: unsafe extern "C" fn(
17338            handle: cusolverDnHandle_t,
17339            m: cusolver_int_t,
17340            n: cusolver_int_t,
17341            nrhs: cusolver_int_t,
17342            dA: *mut f64,
17343            ldda: cusolver_int_t,
17344            dB: *mut f64,
17345            lddb: cusolver_int_t,
17346            dX: *mut f64,
17347            lddx: cusolver_int_t,
17348            dWorkspace: *mut ::core::ffi::c_void,
17349            lwork_bytes: *mut usize,
17350        ) -> cusolverStatus_t,
17351        pub cusolverDnDSgesv: unsafe extern "C" fn(
17352            handle: cusolverDnHandle_t,
17353            n: cusolver_int_t,
17354            nrhs: cusolver_int_t,
17355            dA: *mut f64,
17356            ldda: cusolver_int_t,
17357            dipiv: *mut cusolver_int_t,
17358            dB: *mut f64,
17359            lddb: cusolver_int_t,
17360            dX: *mut f64,
17361            lddx: cusolver_int_t,
17362            dWorkspace: *mut ::core::ffi::c_void,
17363            lwork_bytes: usize,
17364            iter: *mut cusolver_int_t,
17365            d_info: *mut cusolver_int_t,
17366        ) -> cusolverStatus_t,
17367        pub cusolverDnDSgesv_bufferSize: unsafe extern "C" fn(
17368            handle: cusolverDnHandle_t,
17369            n: cusolver_int_t,
17370            nrhs: cusolver_int_t,
17371            dA: *mut f64,
17372            ldda: cusolver_int_t,
17373            dipiv: *mut cusolver_int_t,
17374            dB: *mut f64,
17375            lddb: cusolver_int_t,
17376            dX: *mut f64,
17377            lddx: cusolver_int_t,
17378            dWorkspace: *mut ::core::ffi::c_void,
17379            lwork_bytes: *mut usize,
17380        ) -> cusolverStatus_t,
17381        pub cusolverDnDXgels: unsafe extern "C" fn(
17382            handle: cusolverDnHandle_t,
17383            m: cusolver_int_t,
17384            n: cusolver_int_t,
17385            nrhs: cusolver_int_t,
17386            dA: *mut f64,
17387            ldda: cusolver_int_t,
17388            dB: *mut f64,
17389            lddb: cusolver_int_t,
17390            dX: *mut f64,
17391            lddx: cusolver_int_t,
17392            dWorkspace: *mut ::core::ffi::c_void,
17393            lwork_bytes: usize,
17394            iter: *mut cusolver_int_t,
17395            d_info: *mut cusolver_int_t,
17396        ) -> cusolverStatus_t,
17397        pub cusolverDnDXgels_bufferSize: unsafe extern "C" fn(
17398            handle: cusolverDnHandle_t,
17399            m: cusolver_int_t,
17400            n: cusolver_int_t,
17401            nrhs: cusolver_int_t,
17402            dA: *mut f64,
17403            ldda: cusolver_int_t,
17404            dB: *mut f64,
17405            lddb: cusolver_int_t,
17406            dX: *mut f64,
17407            lddx: cusolver_int_t,
17408            dWorkspace: *mut ::core::ffi::c_void,
17409            lwork_bytes: *mut usize,
17410        ) -> cusolverStatus_t,
17411        pub cusolverDnDXgesv: unsafe extern "C" fn(
17412            handle: cusolverDnHandle_t,
17413            n: cusolver_int_t,
17414            nrhs: cusolver_int_t,
17415            dA: *mut f64,
17416            ldda: cusolver_int_t,
17417            dipiv: *mut cusolver_int_t,
17418            dB: *mut f64,
17419            lddb: cusolver_int_t,
17420            dX: *mut f64,
17421            lddx: cusolver_int_t,
17422            dWorkspace: *mut ::core::ffi::c_void,
17423            lwork_bytes: usize,
17424            iter: *mut cusolver_int_t,
17425            d_info: *mut cusolver_int_t,
17426        ) -> cusolverStatus_t,
17427        pub cusolverDnDXgesv_bufferSize: unsafe extern "C" fn(
17428            handle: cusolverDnHandle_t,
17429            n: cusolver_int_t,
17430            nrhs: cusolver_int_t,
17431            dA: *mut f64,
17432            ldda: cusolver_int_t,
17433            dipiv: *mut cusolver_int_t,
17434            dB: *mut f64,
17435            lddb: cusolver_int_t,
17436            dX: *mut f64,
17437            lddx: cusolver_int_t,
17438            dWorkspace: *mut ::core::ffi::c_void,
17439            lwork_bytes: *mut usize,
17440        ) -> cusolverStatus_t,
17441        pub cusolverDnDestroy: unsafe extern "C" fn(handle: cusolverDnHandle_t) -> cusolverStatus_t,
17442        pub cusolverDnDestroyGesvdjInfo:
17443            unsafe extern "C" fn(info: gesvdjInfo_t) -> cusolverStatus_t,
17444        pub cusolverDnDestroyParams:
17445            unsafe extern "C" fn(params: cusolverDnParams_t) -> cusolverStatus_t,
17446        pub cusolverDnDestroySyevjInfo: unsafe extern "C" fn(info: syevjInfo_t) -> cusolverStatus_t,
17447        pub cusolverDnDgebrd: unsafe extern "C" fn(
17448            handle: cusolverDnHandle_t,
17449            m: ::core::ffi::c_int,
17450            n: ::core::ffi::c_int,
17451            A: *mut f64,
17452            lda: ::core::ffi::c_int,
17453            D: *mut f64,
17454            E: *mut f64,
17455            TAUQ: *mut f64,
17456            TAUP: *mut f64,
17457            Work: *mut f64,
17458            Lwork: ::core::ffi::c_int,
17459            devInfo: *mut ::core::ffi::c_int,
17460        ) -> cusolverStatus_t,
17461        pub cusolverDnDgebrd_bufferSize: unsafe extern "C" fn(
17462            handle: cusolverDnHandle_t,
17463            m: ::core::ffi::c_int,
17464            n: ::core::ffi::c_int,
17465            Lwork: *mut ::core::ffi::c_int,
17466        ) -> cusolverStatus_t,
17467        pub cusolverDnDgeqrf: unsafe extern "C" fn(
17468            handle: cusolverDnHandle_t,
17469            m: ::core::ffi::c_int,
17470            n: ::core::ffi::c_int,
17471            A: *mut f64,
17472            lda: ::core::ffi::c_int,
17473            TAU: *mut f64,
17474            Workspace: *mut f64,
17475            Lwork: ::core::ffi::c_int,
17476            devInfo: *mut ::core::ffi::c_int,
17477        ) -> cusolverStatus_t,
17478        pub cusolverDnDgeqrf_bufferSize: unsafe extern "C" fn(
17479            handle: cusolverDnHandle_t,
17480            m: ::core::ffi::c_int,
17481            n: ::core::ffi::c_int,
17482            A: *mut f64,
17483            lda: ::core::ffi::c_int,
17484            lwork: *mut ::core::ffi::c_int,
17485        ) -> cusolverStatus_t,
17486        pub cusolverDnDgesvd: unsafe extern "C" fn(
17487            handle: cusolverDnHandle_t,
17488            jobu: ::core::ffi::c_schar,
17489            jobvt: ::core::ffi::c_schar,
17490            m: ::core::ffi::c_int,
17491            n: ::core::ffi::c_int,
17492            A: *mut f64,
17493            lda: ::core::ffi::c_int,
17494            S: *mut f64,
17495            U: *mut f64,
17496            ldu: ::core::ffi::c_int,
17497            VT: *mut f64,
17498            ldvt: ::core::ffi::c_int,
17499            work: *mut f64,
17500            lwork: ::core::ffi::c_int,
17501            rwork: *mut f64,
17502            info: *mut ::core::ffi::c_int,
17503        ) -> cusolverStatus_t,
17504        pub cusolverDnDgesvd_bufferSize: unsafe extern "C" fn(
17505            handle: cusolverDnHandle_t,
17506            m: ::core::ffi::c_int,
17507            n: ::core::ffi::c_int,
17508            lwork: *mut ::core::ffi::c_int,
17509        ) -> cusolverStatus_t,
17510        pub cusolverDnDgesvdaStridedBatched: unsafe extern "C" fn(
17511            handle: cusolverDnHandle_t,
17512            jobz: cusolverEigMode_t,
17513            rank: ::core::ffi::c_int,
17514            m: ::core::ffi::c_int,
17515            n: ::core::ffi::c_int,
17516            d_A: *const f64,
17517            lda: ::core::ffi::c_int,
17518            strideA: ::core::ffi::c_longlong,
17519            d_S: *mut f64,
17520            strideS: ::core::ffi::c_longlong,
17521            d_U: *mut f64,
17522            ldu: ::core::ffi::c_int,
17523            strideU: ::core::ffi::c_longlong,
17524            d_V: *mut f64,
17525            ldv: ::core::ffi::c_int,
17526            strideV: ::core::ffi::c_longlong,
17527            d_work: *mut f64,
17528            lwork: ::core::ffi::c_int,
17529            d_info: *mut ::core::ffi::c_int,
17530            h_R_nrmF: *mut f64,
17531            batchSize: ::core::ffi::c_int,
17532        ) -> cusolverStatus_t,
17533        pub cusolverDnDgesvdaStridedBatched_bufferSize: unsafe extern "C" fn(
17534            handle: cusolverDnHandle_t,
17535            jobz: cusolverEigMode_t,
17536            rank: ::core::ffi::c_int,
17537            m: ::core::ffi::c_int,
17538            n: ::core::ffi::c_int,
17539            d_A: *const f64,
17540            lda: ::core::ffi::c_int,
17541            strideA: ::core::ffi::c_longlong,
17542            d_S: *const f64,
17543            strideS: ::core::ffi::c_longlong,
17544            d_U: *const f64,
17545            ldu: ::core::ffi::c_int,
17546            strideU: ::core::ffi::c_longlong,
17547            d_V: *const f64,
17548            ldv: ::core::ffi::c_int,
17549            strideV: ::core::ffi::c_longlong,
17550            lwork: *mut ::core::ffi::c_int,
17551            batchSize: ::core::ffi::c_int,
17552        )
17553            -> cusolverStatus_t,
17554        pub cusolverDnDgesvdj: unsafe extern "C" fn(
17555            handle: cusolverDnHandle_t,
17556            jobz: cusolverEigMode_t,
17557            econ: ::core::ffi::c_int,
17558            m: ::core::ffi::c_int,
17559            n: ::core::ffi::c_int,
17560            A: *mut f64,
17561            lda: ::core::ffi::c_int,
17562            S: *mut f64,
17563            U: *mut f64,
17564            ldu: ::core::ffi::c_int,
17565            V: *mut f64,
17566            ldv: ::core::ffi::c_int,
17567            work: *mut f64,
17568            lwork: ::core::ffi::c_int,
17569            info: *mut ::core::ffi::c_int,
17570            params: gesvdjInfo_t,
17571        ) -> cusolverStatus_t,
17572        pub cusolverDnDgesvdjBatched: unsafe extern "C" fn(
17573            handle: cusolverDnHandle_t,
17574            jobz: cusolverEigMode_t,
17575            m: ::core::ffi::c_int,
17576            n: ::core::ffi::c_int,
17577            A: *mut f64,
17578            lda: ::core::ffi::c_int,
17579            S: *mut f64,
17580            U: *mut f64,
17581            ldu: ::core::ffi::c_int,
17582            V: *mut f64,
17583            ldv: ::core::ffi::c_int,
17584            work: *mut f64,
17585            lwork: ::core::ffi::c_int,
17586            info: *mut ::core::ffi::c_int,
17587            params: gesvdjInfo_t,
17588            batchSize: ::core::ffi::c_int,
17589        ) -> cusolverStatus_t,
17590        pub cusolverDnDgesvdjBatched_bufferSize: unsafe extern "C" fn(
17591            handle: cusolverDnHandle_t,
17592            jobz: cusolverEigMode_t,
17593            m: ::core::ffi::c_int,
17594            n: ::core::ffi::c_int,
17595            A: *const f64,
17596            lda: ::core::ffi::c_int,
17597            S: *const f64,
17598            U: *const f64,
17599            ldu: ::core::ffi::c_int,
17600            V: *const f64,
17601            ldv: ::core::ffi::c_int,
17602            lwork: *mut ::core::ffi::c_int,
17603            params: gesvdjInfo_t,
17604            batchSize: ::core::ffi::c_int,
17605        ) -> cusolverStatus_t,
17606        pub cusolverDnDgesvdj_bufferSize: unsafe extern "C" fn(
17607            handle: cusolverDnHandle_t,
17608            jobz: cusolverEigMode_t,
17609            econ: ::core::ffi::c_int,
17610            m: ::core::ffi::c_int,
17611            n: ::core::ffi::c_int,
17612            A: *const f64,
17613            lda: ::core::ffi::c_int,
17614            S: *const f64,
17615            U: *const f64,
17616            ldu: ::core::ffi::c_int,
17617            V: *const f64,
17618            ldv: ::core::ffi::c_int,
17619            lwork: *mut ::core::ffi::c_int,
17620            params: gesvdjInfo_t,
17621        ) -> cusolverStatus_t,
17622        pub cusolverDnDgetrf: unsafe extern "C" fn(
17623            handle: cusolverDnHandle_t,
17624            m: ::core::ffi::c_int,
17625            n: ::core::ffi::c_int,
17626            A: *mut f64,
17627            lda: ::core::ffi::c_int,
17628            Workspace: *mut f64,
17629            devIpiv: *mut ::core::ffi::c_int,
17630            devInfo: *mut ::core::ffi::c_int,
17631        ) -> cusolverStatus_t,
17632        pub cusolverDnDgetrf_bufferSize: unsafe extern "C" fn(
17633            handle: cusolverDnHandle_t,
17634            m: ::core::ffi::c_int,
17635            n: ::core::ffi::c_int,
17636            A: *mut f64,
17637            lda: ::core::ffi::c_int,
17638            Lwork: *mut ::core::ffi::c_int,
17639        ) -> cusolverStatus_t,
17640        pub cusolverDnDgetrs: unsafe extern "C" fn(
17641            handle: cusolverDnHandle_t,
17642            trans: cublasOperation_t,
17643            n: ::core::ffi::c_int,
17644            nrhs: ::core::ffi::c_int,
17645            A: *const f64,
17646            lda: ::core::ffi::c_int,
17647            devIpiv: *const ::core::ffi::c_int,
17648            B: *mut f64,
17649            ldb: ::core::ffi::c_int,
17650            devInfo: *mut ::core::ffi::c_int,
17651        ) -> cusolverStatus_t,
17652        pub cusolverDnDlaswp: unsafe extern "C" fn(
17653            handle: cusolverDnHandle_t,
17654            n: ::core::ffi::c_int,
17655            A: *mut f64,
17656            lda: ::core::ffi::c_int,
17657            k1: ::core::ffi::c_int,
17658            k2: ::core::ffi::c_int,
17659            devIpiv: *const ::core::ffi::c_int,
17660            incx: ::core::ffi::c_int,
17661        ) -> cusolverStatus_t,
17662        pub cusolverDnDlauum: unsafe extern "C" fn(
17663            handle: cusolverDnHandle_t,
17664            uplo: cublasFillMode_t,
17665            n: ::core::ffi::c_int,
17666            A: *mut f64,
17667            lda: ::core::ffi::c_int,
17668            work: *mut f64,
17669            lwork: ::core::ffi::c_int,
17670            devInfo: *mut ::core::ffi::c_int,
17671        ) -> cusolverStatus_t,
17672        pub cusolverDnDlauum_bufferSize: unsafe extern "C" fn(
17673            handle: cusolverDnHandle_t,
17674            uplo: cublasFillMode_t,
17675            n: ::core::ffi::c_int,
17676            A: *mut f64,
17677            lda: ::core::ffi::c_int,
17678            lwork: *mut ::core::ffi::c_int,
17679        ) -> cusolverStatus_t,
17680        pub cusolverDnDorgbr: unsafe extern "C" fn(
17681            handle: cusolverDnHandle_t,
17682            side: cublasSideMode_t,
17683            m: ::core::ffi::c_int,
17684            n: ::core::ffi::c_int,
17685            k: ::core::ffi::c_int,
17686            A: *mut f64,
17687            lda: ::core::ffi::c_int,
17688            tau: *const f64,
17689            work: *mut f64,
17690            lwork: ::core::ffi::c_int,
17691            info: *mut ::core::ffi::c_int,
17692        ) -> cusolverStatus_t,
17693        pub cusolverDnDorgbr_bufferSize: unsafe extern "C" fn(
17694            handle: cusolverDnHandle_t,
17695            side: cublasSideMode_t,
17696            m: ::core::ffi::c_int,
17697            n: ::core::ffi::c_int,
17698            k: ::core::ffi::c_int,
17699            A: *const f64,
17700            lda: ::core::ffi::c_int,
17701            tau: *const f64,
17702            lwork: *mut ::core::ffi::c_int,
17703        ) -> cusolverStatus_t,
17704        pub cusolverDnDorgqr: unsafe extern "C" fn(
17705            handle: cusolverDnHandle_t,
17706            m: ::core::ffi::c_int,
17707            n: ::core::ffi::c_int,
17708            k: ::core::ffi::c_int,
17709            A: *mut f64,
17710            lda: ::core::ffi::c_int,
17711            tau: *const f64,
17712            work: *mut f64,
17713            lwork: ::core::ffi::c_int,
17714            info: *mut ::core::ffi::c_int,
17715        ) -> cusolverStatus_t,
17716        pub cusolverDnDorgqr_bufferSize: unsafe extern "C" fn(
17717            handle: cusolverDnHandle_t,
17718            m: ::core::ffi::c_int,
17719            n: ::core::ffi::c_int,
17720            k: ::core::ffi::c_int,
17721            A: *const f64,
17722            lda: ::core::ffi::c_int,
17723            tau: *const f64,
17724            lwork: *mut ::core::ffi::c_int,
17725        ) -> cusolverStatus_t,
17726        pub cusolverDnDorgtr: unsafe extern "C" fn(
17727            handle: cusolverDnHandle_t,
17728            uplo: cublasFillMode_t,
17729            n: ::core::ffi::c_int,
17730            A: *mut f64,
17731            lda: ::core::ffi::c_int,
17732            tau: *const f64,
17733            work: *mut f64,
17734            lwork: ::core::ffi::c_int,
17735            info: *mut ::core::ffi::c_int,
17736        ) -> cusolverStatus_t,
17737        pub cusolverDnDorgtr_bufferSize: unsafe extern "C" fn(
17738            handle: cusolverDnHandle_t,
17739            uplo: cublasFillMode_t,
17740            n: ::core::ffi::c_int,
17741            A: *const f64,
17742            lda: ::core::ffi::c_int,
17743            tau: *const f64,
17744            lwork: *mut ::core::ffi::c_int,
17745        ) -> cusolverStatus_t,
17746        pub cusolverDnDormqr: unsafe extern "C" fn(
17747            handle: cusolverDnHandle_t,
17748            side: cublasSideMode_t,
17749            trans: cublasOperation_t,
17750            m: ::core::ffi::c_int,
17751            n: ::core::ffi::c_int,
17752            k: ::core::ffi::c_int,
17753            A: *const f64,
17754            lda: ::core::ffi::c_int,
17755            tau: *const f64,
17756            C: *mut f64,
17757            ldc: ::core::ffi::c_int,
17758            work: *mut f64,
17759            lwork: ::core::ffi::c_int,
17760            devInfo: *mut ::core::ffi::c_int,
17761        ) -> cusolverStatus_t,
17762        pub cusolverDnDormqr_bufferSize: unsafe extern "C" fn(
17763            handle: cusolverDnHandle_t,
17764            side: cublasSideMode_t,
17765            trans: cublasOperation_t,
17766            m: ::core::ffi::c_int,
17767            n: ::core::ffi::c_int,
17768            k: ::core::ffi::c_int,
17769            A: *const f64,
17770            lda: ::core::ffi::c_int,
17771            tau: *const f64,
17772            C: *const f64,
17773            ldc: ::core::ffi::c_int,
17774            lwork: *mut ::core::ffi::c_int,
17775        ) -> cusolverStatus_t,
17776        pub cusolverDnDormtr: unsafe extern "C" fn(
17777            handle: cusolverDnHandle_t,
17778            side: cublasSideMode_t,
17779            uplo: cublasFillMode_t,
17780            trans: cublasOperation_t,
17781            m: ::core::ffi::c_int,
17782            n: ::core::ffi::c_int,
17783            A: *mut f64,
17784            lda: ::core::ffi::c_int,
17785            tau: *mut f64,
17786            C: *mut f64,
17787            ldc: ::core::ffi::c_int,
17788            work: *mut f64,
17789            lwork: ::core::ffi::c_int,
17790            info: *mut ::core::ffi::c_int,
17791        ) -> cusolverStatus_t,
17792        pub cusolverDnDormtr_bufferSize: unsafe extern "C" fn(
17793            handle: cusolverDnHandle_t,
17794            side: cublasSideMode_t,
17795            uplo: cublasFillMode_t,
17796            trans: cublasOperation_t,
17797            m: ::core::ffi::c_int,
17798            n: ::core::ffi::c_int,
17799            A: *const f64,
17800            lda: ::core::ffi::c_int,
17801            tau: *const f64,
17802            C: *const f64,
17803            ldc: ::core::ffi::c_int,
17804            lwork: *mut ::core::ffi::c_int,
17805        ) -> cusolverStatus_t,
17806        pub cusolverDnDpotrf: unsafe extern "C" fn(
17807            handle: cusolverDnHandle_t,
17808            uplo: cublasFillMode_t,
17809            n: ::core::ffi::c_int,
17810            A: *mut f64,
17811            lda: ::core::ffi::c_int,
17812            Workspace: *mut f64,
17813            Lwork: ::core::ffi::c_int,
17814            devInfo: *mut ::core::ffi::c_int,
17815        ) -> cusolverStatus_t,
17816        pub cusolverDnDpotrfBatched: unsafe extern "C" fn(
17817            handle: cusolverDnHandle_t,
17818            uplo: cublasFillMode_t,
17819            n: ::core::ffi::c_int,
17820            Aarray: *mut *mut f64,
17821            lda: ::core::ffi::c_int,
17822            infoArray: *mut ::core::ffi::c_int,
17823            batchSize: ::core::ffi::c_int,
17824        ) -> cusolverStatus_t,
17825        pub cusolverDnDpotrf_bufferSize: unsafe extern "C" fn(
17826            handle: cusolverDnHandle_t,
17827            uplo: cublasFillMode_t,
17828            n: ::core::ffi::c_int,
17829            A: *mut f64,
17830            lda: ::core::ffi::c_int,
17831            Lwork: *mut ::core::ffi::c_int,
17832        ) -> cusolverStatus_t,
17833        pub cusolverDnDpotri: unsafe extern "C" fn(
17834            handle: cusolverDnHandle_t,
17835            uplo: cublasFillMode_t,
17836            n: ::core::ffi::c_int,
17837            A: *mut f64,
17838            lda: ::core::ffi::c_int,
17839            work: *mut f64,
17840            lwork: ::core::ffi::c_int,
17841            devInfo: *mut ::core::ffi::c_int,
17842        ) -> cusolverStatus_t,
17843        pub cusolverDnDpotri_bufferSize: unsafe extern "C" fn(
17844            handle: cusolverDnHandle_t,
17845            uplo: cublasFillMode_t,
17846            n: ::core::ffi::c_int,
17847            A: *mut f64,
17848            lda: ::core::ffi::c_int,
17849            lwork: *mut ::core::ffi::c_int,
17850        ) -> cusolverStatus_t,
17851        pub cusolverDnDpotrs: unsafe extern "C" fn(
17852            handle: cusolverDnHandle_t,
17853            uplo: cublasFillMode_t,
17854            n: ::core::ffi::c_int,
17855            nrhs: ::core::ffi::c_int,
17856            A: *const f64,
17857            lda: ::core::ffi::c_int,
17858            B: *mut f64,
17859            ldb: ::core::ffi::c_int,
17860            devInfo: *mut ::core::ffi::c_int,
17861        ) -> cusolverStatus_t,
17862        pub cusolverDnDpotrsBatched: unsafe extern "C" fn(
17863            handle: cusolverDnHandle_t,
17864            uplo: cublasFillMode_t,
17865            n: ::core::ffi::c_int,
17866            nrhs: ::core::ffi::c_int,
17867            A: *mut *mut f64,
17868            lda: ::core::ffi::c_int,
17869            B: *mut *mut f64,
17870            ldb: ::core::ffi::c_int,
17871            d_info: *mut ::core::ffi::c_int,
17872            batchSize: ::core::ffi::c_int,
17873        ) -> cusolverStatus_t,
17874        pub cusolverDnDsyevd: unsafe extern "C" fn(
17875            handle: cusolverDnHandle_t,
17876            jobz: cusolverEigMode_t,
17877            uplo: cublasFillMode_t,
17878            n: ::core::ffi::c_int,
17879            A: *mut f64,
17880            lda: ::core::ffi::c_int,
17881            W: *mut f64,
17882            work: *mut f64,
17883            lwork: ::core::ffi::c_int,
17884            info: *mut ::core::ffi::c_int,
17885        ) -> cusolverStatus_t,
17886        pub cusolverDnDsyevd_bufferSize: unsafe extern "C" fn(
17887            handle: cusolverDnHandle_t,
17888            jobz: cusolverEigMode_t,
17889            uplo: cublasFillMode_t,
17890            n: ::core::ffi::c_int,
17891            A: *const f64,
17892            lda: ::core::ffi::c_int,
17893            W: *const f64,
17894            lwork: *mut ::core::ffi::c_int,
17895        ) -> cusolverStatus_t,
17896        pub cusolverDnDsyevdx: unsafe extern "C" fn(
17897            handle: cusolverDnHandle_t,
17898            jobz: cusolverEigMode_t,
17899            range: cusolverEigRange_t,
17900            uplo: cublasFillMode_t,
17901            n: ::core::ffi::c_int,
17902            A: *mut f64,
17903            lda: ::core::ffi::c_int,
17904            vl: f64,
17905            vu: f64,
17906            il: ::core::ffi::c_int,
17907            iu: ::core::ffi::c_int,
17908            meig: *mut ::core::ffi::c_int,
17909            W: *mut f64,
17910            work: *mut f64,
17911            lwork: ::core::ffi::c_int,
17912            info: *mut ::core::ffi::c_int,
17913        ) -> cusolverStatus_t,
17914        pub cusolverDnDsyevdx_bufferSize: unsafe extern "C" fn(
17915            handle: cusolverDnHandle_t,
17916            jobz: cusolverEigMode_t,
17917            range: cusolverEigRange_t,
17918            uplo: cublasFillMode_t,
17919            n: ::core::ffi::c_int,
17920            A: *const f64,
17921            lda: ::core::ffi::c_int,
17922            vl: f64,
17923            vu: f64,
17924            il: ::core::ffi::c_int,
17925            iu: ::core::ffi::c_int,
17926            meig: *mut ::core::ffi::c_int,
17927            W: *const f64,
17928            lwork: *mut ::core::ffi::c_int,
17929        ) -> cusolverStatus_t,
17930        pub cusolverDnDsyevj: unsafe extern "C" fn(
17931            handle: cusolverDnHandle_t,
17932            jobz: cusolverEigMode_t,
17933            uplo: cublasFillMode_t,
17934            n: ::core::ffi::c_int,
17935            A: *mut f64,
17936            lda: ::core::ffi::c_int,
17937            W: *mut f64,
17938            work: *mut f64,
17939            lwork: ::core::ffi::c_int,
17940            info: *mut ::core::ffi::c_int,
17941            params: syevjInfo_t,
17942        ) -> cusolverStatus_t,
17943        pub cusolverDnDsyevjBatched: unsafe extern "C" fn(
17944            handle: cusolverDnHandle_t,
17945            jobz: cusolverEigMode_t,
17946            uplo: cublasFillMode_t,
17947            n: ::core::ffi::c_int,
17948            A: *mut f64,
17949            lda: ::core::ffi::c_int,
17950            W: *mut f64,
17951            work: *mut f64,
17952            lwork: ::core::ffi::c_int,
17953            info: *mut ::core::ffi::c_int,
17954            params: syevjInfo_t,
17955            batchSize: ::core::ffi::c_int,
17956        ) -> cusolverStatus_t,
17957        pub cusolverDnDsyevjBatched_bufferSize: unsafe extern "C" fn(
17958            handle: cusolverDnHandle_t,
17959            jobz: cusolverEigMode_t,
17960            uplo: cublasFillMode_t,
17961            n: ::core::ffi::c_int,
17962            A: *const f64,
17963            lda: ::core::ffi::c_int,
17964            W: *const f64,
17965            lwork: *mut ::core::ffi::c_int,
17966            params: syevjInfo_t,
17967            batchSize: ::core::ffi::c_int,
17968        ) -> cusolverStatus_t,
17969        pub cusolverDnDsyevj_bufferSize: unsafe extern "C" fn(
17970            handle: cusolverDnHandle_t,
17971            jobz: cusolverEigMode_t,
17972            uplo: cublasFillMode_t,
17973            n: ::core::ffi::c_int,
17974            A: *const f64,
17975            lda: ::core::ffi::c_int,
17976            W: *const f64,
17977            lwork: *mut ::core::ffi::c_int,
17978            params: syevjInfo_t,
17979        ) -> cusolverStatus_t,
17980        pub cusolverDnDsygvd: unsafe extern "C" fn(
17981            handle: cusolverDnHandle_t,
17982            itype: cusolverEigType_t,
17983            jobz: cusolverEigMode_t,
17984            uplo: cublasFillMode_t,
17985            n: ::core::ffi::c_int,
17986            A: *mut f64,
17987            lda: ::core::ffi::c_int,
17988            B: *mut f64,
17989            ldb: ::core::ffi::c_int,
17990            W: *mut f64,
17991            work: *mut f64,
17992            lwork: ::core::ffi::c_int,
17993            info: *mut ::core::ffi::c_int,
17994        ) -> cusolverStatus_t,
17995        pub cusolverDnDsygvd_bufferSize: unsafe extern "C" fn(
17996            handle: cusolverDnHandle_t,
17997            itype: cusolverEigType_t,
17998            jobz: cusolverEigMode_t,
17999            uplo: cublasFillMode_t,
18000            n: ::core::ffi::c_int,
18001            A: *const f64,
18002            lda: ::core::ffi::c_int,
18003            B: *const f64,
18004            ldb: ::core::ffi::c_int,
18005            W: *const f64,
18006            lwork: *mut ::core::ffi::c_int,
18007        ) -> cusolverStatus_t,
18008        pub cusolverDnDsygvdx: unsafe extern "C" fn(
18009            handle: cusolverDnHandle_t,
18010            itype: cusolverEigType_t,
18011            jobz: cusolverEigMode_t,
18012            range: cusolverEigRange_t,
18013            uplo: cublasFillMode_t,
18014            n: ::core::ffi::c_int,
18015            A: *mut f64,
18016            lda: ::core::ffi::c_int,
18017            B: *mut f64,
18018            ldb: ::core::ffi::c_int,
18019            vl: f64,
18020            vu: f64,
18021            il: ::core::ffi::c_int,
18022            iu: ::core::ffi::c_int,
18023            meig: *mut ::core::ffi::c_int,
18024            W: *mut f64,
18025            work: *mut f64,
18026            lwork: ::core::ffi::c_int,
18027            info: *mut ::core::ffi::c_int,
18028        ) -> cusolverStatus_t,
18029        pub cusolverDnDsygvdx_bufferSize: unsafe extern "C" fn(
18030            handle: cusolverDnHandle_t,
18031            itype: cusolverEigType_t,
18032            jobz: cusolverEigMode_t,
18033            range: cusolverEigRange_t,
18034            uplo: cublasFillMode_t,
18035            n: ::core::ffi::c_int,
18036            A: *const f64,
18037            lda: ::core::ffi::c_int,
18038            B: *const f64,
18039            ldb: ::core::ffi::c_int,
18040            vl: f64,
18041            vu: f64,
18042            il: ::core::ffi::c_int,
18043            iu: ::core::ffi::c_int,
18044            meig: *mut ::core::ffi::c_int,
18045            W: *const f64,
18046            lwork: *mut ::core::ffi::c_int,
18047        ) -> cusolverStatus_t,
18048        pub cusolverDnDsygvj: unsafe extern "C" fn(
18049            handle: cusolverDnHandle_t,
18050            itype: cusolverEigType_t,
18051            jobz: cusolverEigMode_t,
18052            uplo: cublasFillMode_t,
18053            n: ::core::ffi::c_int,
18054            A: *mut f64,
18055            lda: ::core::ffi::c_int,
18056            B: *mut f64,
18057            ldb: ::core::ffi::c_int,
18058            W: *mut f64,
18059            work: *mut f64,
18060            lwork: ::core::ffi::c_int,
18061            info: *mut ::core::ffi::c_int,
18062            params: syevjInfo_t,
18063        ) -> cusolverStatus_t,
18064        pub cusolverDnDsygvj_bufferSize: unsafe extern "C" fn(
18065            handle: cusolverDnHandle_t,
18066            itype: cusolverEigType_t,
18067            jobz: cusolverEigMode_t,
18068            uplo: cublasFillMode_t,
18069            n: ::core::ffi::c_int,
18070            A: *const f64,
18071            lda: ::core::ffi::c_int,
18072            B: *const f64,
18073            ldb: ::core::ffi::c_int,
18074            W: *const f64,
18075            lwork: *mut ::core::ffi::c_int,
18076            params: syevjInfo_t,
18077        ) -> cusolverStatus_t,
18078        pub cusolverDnDsytrd: unsafe extern "C" fn(
18079            handle: cusolverDnHandle_t,
18080            uplo: cublasFillMode_t,
18081            n: ::core::ffi::c_int,
18082            A: *mut f64,
18083            lda: ::core::ffi::c_int,
18084            d: *mut f64,
18085            e: *mut f64,
18086            tau: *mut f64,
18087            work: *mut f64,
18088            lwork: ::core::ffi::c_int,
18089            info: *mut ::core::ffi::c_int,
18090        ) -> cusolverStatus_t,
18091        pub cusolverDnDsytrd_bufferSize: unsafe extern "C" fn(
18092            handle: cusolverDnHandle_t,
18093            uplo: cublasFillMode_t,
18094            n: ::core::ffi::c_int,
18095            A: *const f64,
18096            lda: ::core::ffi::c_int,
18097            d: *const f64,
18098            e: *const f64,
18099            tau: *const f64,
18100            lwork: *mut ::core::ffi::c_int,
18101        ) -> cusolverStatus_t,
18102        pub cusolverDnDsytrf: unsafe extern "C" fn(
18103            handle: cusolverDnHandle_t,
18104            uplo: cublasFillMode_t,
18105            n: ::core::ffi::c_int,
18106            A: *mut f64,
18107            lda: ::core::ffi::c_int,
18108            ipiv: *mut ::core::ffi::c_int,
18109            work: *mut f64,
18110            lwork: ::core::ffi::c_int,
18111            info: *mut ::core::ffi::c_int,
18112        ) -> cusolverStatus_t,
18113        pub cusolverDnDsytrf_bufferSize: unsafe extern "C" fn(
18114            handle: cusolverDnHandle_t,
18115            n: ::core::ffi::c_int,
18116            A: *mut f64,
18117            lda: ::core::ffi::c_int,
18118            lwork: *mut ::core::ffi::c_int,
18119        ) -> cusolverStatus_t,
18120        pub cusolverDnDsytri: unsafe extern "C" fn(
18121            handle: cusolverDnHandle_t,
18122            uplo: cublasFillMode_t,
18123            n: ::core::ffi::c_int,
18124            A: *mut f64,
18125            lda: ::core::ffi::c_int,
18126            ipiv: *const ::core::ffi::c_int,
18127            work: *mut f64,
18128            lwork: ::core::ffi::c_int,
18129            info: *mut ::core::ffi::c_int,
18130        ) -> cusolverStatus_t,
18131        pub cusolverDnDsytri_bufferSize: unsafe extern "C" fn(
18132            handle: cusolverDnHandle_t,
18133            uplo: cublasFillMode_t,
18134            n: ::core::ffi::c_int,
18135            A: *mut f64,
18136            lda: ::core::ffi::c_int,
18137            ipiv: *const ::core::ffi::c_int,
18138            lwork: *mut ::core::ffi::c_int,
18139        ) -> cusolverStatus_t,
18140        #[cfg(any(
18141            feature = "cuda-11040",
18142            feature = "cuda-11050",
18143            feature = "cuda-11060",
18144            feature = "cuda-11070",
18145            feature = "cuda-11080",
18146            feature = "cuda-12000",
18147            feature = "cuda-12010",
18148            feature = "cuda-12020",
18149            feature = "cuda-12030",
18150            feature = "cuda-12040",
18151            feature = "cuda-12050",
18152            feature = "cuda-12060",
18153            feature = "cuda-12080",
18154            feature = "cuda-12090"
18155        ))]
18156        pub cusolverDnGeqrf: unsafe extern "C" fn(
18157            handle: cusolverDnHandle_t,
18158            params: cusolverDnParams_t,
18159            m: i64,
18160            n: i64,
18161            dataTypeA: cudaDataType,
18162            A: *mut ::core::ffi::c_void,
18163            lda: i64,
18164            dataTypeTau: cudaDataType,
18165            tau: *mut ::core::ffi::c_void,
18166            computeType: cudaDataType,
18167            pBuffer: *mut ::core::ffi::c_void,
18168            workspaceInBytes: usize,
18169            info: *mut ::core::ffi::c_int,
18170        ) -> cusolverStatus_t,
18171        #[cfg(any(
18172            feature = "cuda-11040",
18173            feature = "cuda-11050",
18174            feature = "cuda-11060",
18175            feature = "cuda-11070",
18176            feature = "cuda-11080",
18177            feature = "cuda-12000",
18178            feature = "cuda-12010",
18179            feature = "cuda-12020",
18180            feature = "cuda-12030",
18181            feature = "cuda-12040",
18182            feature = "cuda-12050",
18183            feature = "cuda-12060",
18184            feature = "cuda-12080",
18185            feature = "cuda-12090"
18186        ))]
18187        pub cusolverDnGeqrf_bufferSize: unsafe extern "C" fn(
18188            handle: cusolverDnHandle_t,
18189            params: cusolverDnParams_t,
18190            m: i64,
18191            n: i64,
18192            dataTypeA: cudaDataType,
18193            A: *const ::core::ffi::c_void,
18194            lda: i64,
18195            dataTypeTau: cudaDataType,
18196            tau: *const ::core::ffi::c_void,
18197            computeType: cudaDataType,
18198            workspaceInBytes: *mut usize,
18199        ) -> cusolverStatus_t,
18200        #[cfg(any(
18201            feature = "cuda-11040",
18202            feature = "cuda-11050",
18203            feature = "cuda-11060",
18204            feature = "cuda-11070",
18205            feature = "cuda-11080",
18206            feature = "cuda-12000",
18207            feature = "cuda-12010",
18208            feature = "cuda-12020",
18209            feature = "cuda-12030",
18210            feature = "cuda-12040",
18211            feature = "cuda-12050",
18212            feature = "cuda-12060",
18213            feature = "cuda-12080",
18214            feature = "cuda-12090"
18215        ))]
18216        pub cusolverDnGesvd: unsafe extern "C" fn(
18217            handle: cusolverDnHandle_t,
18218            params: cusolverDnParams_t,
18219            jobu: ::core::ffi::c_schar,
18220            jobvt: ::core::ffi::c_schar,
18221            m: i64,
18222            n: i64,
18223            dataTypeA: cudaDataType,
18224            A: *mut ::core::ffi::c_void,
18225            lda: i64,
18226            dataTypeS: cudaDataType,
18227            S: *mut ::core::ffi::c_void,
18228            dataTypeU: cudaDataType,
18229            U: *mut ::core::ffi::c_void,
18230            ldu: i64,
18231            dataTypeVT: cudaDataType,
18232            VT: *mut ::core::ffi::c_void,
18233            ldvt: i64,
18234            computeType: cudaDataType,
18235            pBuffer: *mut ::core::ffi::c_void,
18236            workspaceInBytes: usize,
18237            info: *mut ::core::ffi::c_int,
18238        ) -> cusolverStatus_t,
18239        #[cfg(any(
18240            feature = "cuda-11040",
18241            feature = "cuda-11050",
18242            feature = "cuda-11060",
18243            feature = "cuda-11070",
18244            feature = "cuda-11080",
18245            feature = "cuda-12000",
18246            feature = "cuda-12010",
18247            feature = "cuda-12020",
18248            feature = "cuda-12030",
18249            feature = "cuda-12040",
18250            feature = "cuda-12050",
18251            feature = "cuda-12060",
18252            feature = "cuda-12080",
18253            feature = "cuda-12090"
18254        ))]
18255        pub cusolverDnGesvd_bufferSize: unsafe extern "C" fn(
18256            handle: cusolverDnHandle_t,
18257            params: cusolverDnParams_t,
18258            jobu: ::core::ffi::c_schar,
18259            jobvt: ::core::ffi::c_schar,
18260            m: i64,
18261            n: i64,
18262            dataTypeA: cudaDataType,
18263            A: *const ::core::ffi::c_void,
18264            lda: i64,
18265            dataTypeS: cudaDataType,
18266            S: *const ::core::ffi::c_void,
18267            dataTypeU: cudaDataType,
18268            U: *const ::core::ffi::c_void,
18269            ldu: i64,
18270            dataTypeVT: cudaDataType,
18271            VT: *const ::core::ffi::c_void,
18272            ldvt: i64,
18273            computeType: cudaDataType,
18274            workspaceInBytes: *mut usize,
18275        ) -> cusolverStatus_t,
18276        #[cfg(any(
18277            feature = "cuda-12020",
18278            feature = "cuda-12030",
18279            feature = "cuda-12040",
18280            feature = "cuda-12050",
18281            feature = "cuda-12060",
18282            feature = "cuda-12080",
18283            feature = "cuda-12090",
18284            feature = "cuda-13000",
18285            feature = "cuda-13010"
18286        ))]
18287        pub cusolverDnGetDeterministicMode: unsafe extern "C" fn(
18288            handle: cusolverDnHandle_t,
18289            mode: *mut cusolverDeterministicMode_t,
18290        ) -> cusolverStatus_t,
18291        #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
18292        pub cusolverDnGetEmulationStrategy: unsafe extern "C" fn(
18293            handle: cusolverDnHandle_t,
18294            strategy: *mut cudaEmulationStrategy_t,
18295        ) -> cusolverStatus_t,
18296        #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
18297        pub cusolverDnGetMathMode: unsafe extern "C" fn(
18298            handle: cusolverDnHandle_t,
18299            mode: *mut cusolverMathMode_t,
18300        ) -> cusolverStatus_t,
18301        pub cusolverDnGetStream: unsafe extern "C" fn(
18302            handle: cusolverDnHandle_t,
18303            streamId: *mut cudaStream_t,
18304        ) -> cusolverStatus_t,
18305        #[cfg(any(
18306            feature = "cuda-11040",
18307            feature = "cuda-11050",
18308            feature = "cuda-11060",
18309            feature = "cuda-11070",
18310            feature = "cuda-11080",
18311            feature = "cuda-12000",
18312            feature = "cuda-12010",
18313            feature = "cuda-12020",
18314            feature = "cuda-12030",
18315            feature = "cuda-12040",
18316            feature = "cuda-12050",
18317            feature = "cuda-12060",
18318            feature = "cuda-12080",
18319            feature = "cuda-12090"
18320        ))]
18321        pub cusolverDnGetrf: unsafe extern "C" fn(
18322            handle: cusolverDnHandle_t,
18323            params: cusolverDnParams_t,
18324            m: i64,
18325            n: i64,
18326            dataTypeA: cudaDataType,
18327            A: *mut ::core::ffi::c_void,
18328            lda: i64,
18329            ipiv: *mut i64,
18330            computeType: cudaDataType,
18331            pBuffer: *mut ::core::ffi::c_void,
18332            workspaceInBytes: usize,
18333            info: *mut ::core::ffi::c_int,
18334        ) -> cusolverStatus_t,
18335        #[cfg(any(
18336            feature = "cuda-11040",
18337            feature = "cuda-11050",
18338            feature = "cuda-11060",
18339            feature = "cuda-11070",
18340            feature = "cuda-11080",
18341            feature = "cuda-12000",
18342            feature = "cuda-12010",
18343            feature = "cuda-12020",
18344            feature = "cuda-12030",
18345            feature = "cuda-12040",
18346            feature = "cuda-12050",
18347            feature = "cuda-12060",
18348            feature = "cuda-12080",
18349            feature = "cuda-12090"
18350        ))]
18351        pub cusolverDnGetrf_bufferSize: unsafe extern "C" fn(
18352            handle: cusolverDnHandle_t,
18353            params: cusolverDnParams_t,
18354            m: i64,
18355            n: i64,
18356            dataTypeA: cudaDataType,
18357            A: *const ::core::ffi::c_void,
18358            lda: i64,
18359            computeType: cudaDataType,
18360            workspaceInBytes: *mut usize,
18361        ) -> cusolverStatus_t,
18362        #[cfg(any(
18363            feature = "cuda-11040",
18364            feature = "cuda-11050",
18365            feature = "cuda-11060",
18366            feature = "cuda-11070",
18367            feature = "cuda-11080",
18368            feature = "cuda-12000",
18369            feature = "cuda-12010",
18370            feature = "cuda-12020",
18371            feature = "cuda-12030",
18372            feature = "cuda-12040",
18373            feature = "cuda-12050",
18374            feature = "cuda-12060",
18375            feature = "cuda-12080",
18376            feature = "cuda-12090"
18377        ))]
18378        pub cusolverDnGetrs: unsafe extern "C" fn(
18379            handle: cusolverDnHandle_t,
18380            params: cusolverDnParams_t,
18381            trans: cublasOperation_t,
18382            n: i64,
18383            nrhs: i64,
18384            dataTypeA: cudaDataType,
18385            A: *const ::core::ffi::c_void,
18386            lda: i64,
18387            ipiv: *const i64,
18388            dataTypeB: cudaDataType,
18389            B: *mut ::core::ffi::c_void,
18390            ldb: i64,
18391            info: *mut ::core::ffi::c_int,
18392        ) -> cusolverStatus_t,
18393        pub cusolverDnIRSInfosCreate:
18394            unsafe extern "C" fn(infos_ptr: *mut cusolverDnIRSInfos_t) -> cusolverStatus_t,
18395        pub cusolverDnIRSInfosDestroy:
18396            unsafe extern "C" fn(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t,
18397        pub cusolverDnIRSInfosGetMaxIters: unsafe extern "C" fn(
18398            infos: cusolverDnIRSInfos_t,
18399            maxiters: *mut cusolver_int_t,
18400        ) -> cusolverStatus_t,
18401        pub cusolverDnIRSInfosGetNiters: unsafe extern "C" fn(
18402            infos: cusolverDnIRSInfos_t,
18403            niters: *mut cusolver_int_t,
18404        ) -> cusolverStatus_t,
18405        pub cusolverDnIRSInfosGetOuterNiters: unsafe extern "C" fn(
18406            infos: cusolverDnIRSInfos_t,
18407            outer_niters: *mut cusolver_int_t,
18408        ) -> cusolverStatus_t,
18409        pub cusolverDnIRSInfosGetResidualHistory: unsafe extern "C" fn(
18410            infos: cusolverDnIRSInfos_t,
18411            residual_history: *mut *mut ::core::ffi::c_void,
18412        ) -> cusolverStatus_t,
18413        pub cusolverDnIRSInfosRequestResidual:
18414            unsafe extern "C" fn(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t,
18415        pub cusolverDnIRSParamsCreate:
18416            unsafe extern "C" fn(params_ptr: *mut cusolverDnIRSParams_t) -> cusolverStatus_t,
18417        pub cusolverDnIRSParamsDestroy:
18418            unsafe extern "C" fn(params: cusolverDnIRSParams_t) -> cusolverStatus_t,
18419        pub cusolverDnIRSParamsDisableFallback:
18420            unsafe extern "C" fn(params: cusolverDnIRSParams_t) -> cusolverStatus_t,
18421        pub cusolverDnIRSParamsEnableFallback:
18422            unsafe extern "C" fn(params: cusolverDnIRSParams_t) -> cusolverStatus_t,
18423        pub cusolverDnIRSParamsGetMaxIters: unsafe extern "C" fn(
18424            params: cusolverDnIRSParams_t,
18425            maxiters: *mut cusolver_int_t,
18426        ) -> cusolverStatus_t,
18427        pub cusolverDnIRSParamsSetMaxIters: unsafe extern "C" fn(
18428            params: cusolverDnIRSParams_t,
18429            maxiters: cusolver_int_t,
18430        ) -> cusolverStatus_t,
18431        pub cusolverDnIRSParamsSetMaxItersInner: unsafe extern "C" fn(
18432            params: cusolverDnIRSParams_t,
18433            maxiters_inner: cusolver_int_t,
18434        ) -> cusolverStatus_t,
18435        pub cusolverDnIRSParamsSetRefinementSolver: unsafe extern "C" fn(
18436            params: cusolverDnIRSParams_t,
18437            refinement_solver: cusolverIRSRefinement_t,
18438        )
18439            -> cusolverStatus_t,
18440        pub cusolverDnIRSParamsSetSolverLowestPrecision: unsafe extern "C" fn(
18441            params: cusolverDnIRSParams_t,
18442            solver_lowest_precision: cusolverPrecType_t,
18443        )
18444            -> cusolverStatus_t,
18445        pub cusolverDnIRSParamsSetSolverMainPrecision: unsafe extern "C" fn(
18446            params: cusolverDnIRSParams_t,
18447            solver_main_precision: cusolverPrecType_t,
18448        )
18449            -> cusolverStatus_t,
18450        pub cusolverDnIRSParamsSetSolverPrecisions: unsafe extern "C" fn(
18451            params: cusolverDnIRSParams_t,
18452            solver_main_precision: cusolverPrecType_t,
18453            solver_lowest_precision: cusolverPrecType_t,
18454        )
18455            -> cusolverStatus_t,
18456        pub cusolverDnIRSParamsSetTol:
18457            unsafe extern "C" fn(params: cusolverDnIRSParams_t, val: f64) -> cusolverStatus_t,
18458        pub cusolverDnIRSParamsSetTolInner:
18459            unsafe extern "C" fn(params: cusolverDnIRSParams_t, val: f64) -> cusolverStatus_t,
18460        pub cusolverDnIRSXgels: unsafe extern "C" fn(
18461            handle: cusolverDnHandle_t,
18462            gels_irs_params: cusolverDnIRSParams_t,
18463            gels_irs_infos: cusolverDnIRSInfos_t,
18464            m: cusolver_int_t,
18465            n: cusolver_int_t,
18466            nrhs: cusolver_int_t,
18467            dA: *mut ::core::ffi::c_void,
18468            ldda: cusolver_int_t,
18469            dB: *mut ::core::ffi::c_void,
18470            lddb: cusolver_int_t,
18471            dX: *mut ::core::ffi::c_void,
18472            lddx: cusolver_int_t,
18473            dWorkspace: *mut ::core::ffi::c_void,
18474            lwork_bytes: usize,
18475            niters: *mut cusolver_int_t,
18476            d_info: *mut cusolver_int_t,
18477        ) -> cusolverStatus_t,
18478        pub cusolverDnIRSXgels_bufferSize: unsafe extern "C" fn(
18479            handle: cusolverDnHandle_t,
18480            params: cusolverDnIRSParams_t,
18481            m: cusolver_int_t,
18482            n: cusolver_int_t,
18483            nrhs: cusolver_int_t,
18484            lwork_bytes: *mut usize,
18485        ) -> cusolverStatus_t,
18486        pub cusolverDnIRSXgesv: unsafe extern "C" fn(
18487            handle: cusolverDnHandle_t,
18488            gesv_irs_params: cusolverDnIRSParams_t,
18489            gesv_irs_infos: cusolverDnIRSInfos_t,
18490            n: cusolver_int_t,
18491            nrhs: cusolver_int_t,
18492            dA: *mut ::core::ffi::c_void,
18493            ldda: cusolver_int_t,
18494            dB: *mut ::core::ffi::c_void,
18495            lddb: cusolver_int_t,
18496            dX: *mut ::core::ffi::c_void,
18497            lddx: cusolver_int_t,
18498            dWorkspace: *mut ::core::ffi::c_void,
18499            lwork_bytes: usize,
18500            niters: *mut cusolver_int_t,
18501            d_info: *mut cusolver_int_t,
18502        ) -> cusolverStatus_t,
18503        pub cusolverDnIRSXgesv_bufferSize: unsafe extern "C" fn(
18504            handle: cusolverDnHandle_t,
18505            params: cusolverDnIRSParams_t,
18506            n: cusolver_int_t,
18507            nrhs: cusolver_int_t,
18508            lwork_bytes: *mut usize,
18509        ) -> cusolverStatus_t,
18510        #[cfg(any(
18511            feature = "cuda-11040",
18512            feature = "cuda-11050",
18513            feature = "cuda-11060",
18514            feature = "cuda-11070",
18515            feature = "cuda-11080",
18516            feature = "cuda-12000",
18517            feature = "cuda-12010",
18518            feature = "cuda-12020",
18519            feature = "cuda-12030",
18520            feature = "cuda-12040",
18521            feature = "cuda-12050",
18522            feature = "cuda-12060",
18523            feature = "cuda-12080",
18524            feature = "cuda-12090"
18525        ))]
18526        pub cusolverDnPotrf: unsafe extern "C" fn(
18527            handle: cusolverDnHandle_t,
18528            params: cusolverDnParams_t,
18529            uplo: cublasFillMode_t,
18530            n: i64,
18531            dataTypeA: cudaDataType,
18532            A: *mut ::core::ffi::c_void,
18533            lda: i64,
18534            computeType: cudaDataType,
18535            pBuffer: *mut ::core::ffi::c_void,
18536            workspaceInBytes: usize,
18537            info: *mut ::core::ffi::c_int,
18538        ) -> cusolverStatus_t,
18539        #[cfg(any(
18540            feature = "cuda-11040",
18541            feature = "cuda-11050",
18542            feature = "cuda-11060",
18543            feature = "cuda-11070",
18544            feature = "cuda-11080",
18545            feature = "cuda-12000",
18546            feature = "cuda-12010",
18547            feature = "cuda-12020",
18548            feature = "cuda-12030",
18549            feature = "cuda-12040",
18550            feature = "cuda-12050",
18551            feature = "cuda-12060",
18552            feature = "cuda-12080",
18553            feature = "cuda-12090"
18554        ))]
18555        pub cusolverDnPotrf_bufferSize: unsafe extern "C" fn(
18556            handle: cusolverDnHandle_t,
18557            params: cusolverDnParams_t,
18558            uplo: cublasFillMode_t,
18559            n: i64,
18560            dataTypeA: cudaDataType,
18561            A: *const ::core::ffi::c_void,
18562            lda: i64,
18563            computeType: cudaDataType,
18564            workspaceInBytes: *mut usize,
18565        ) -> cusolverStatus_t,
18566        #[cfg(any(
18567            feature = "cuda-11040",
18568            feature = "cuda-11050",
18569            feature = "cuda-11060",
18570            feature = "cuda-11070",
18571            feature = "cuda-11080",
18572            feature = "cuda-12000",
18573            feature = "cuda-12010",
18574            feature = "cuda-12020",
18575            feature = "cuda-12030",
18576            feature = "cuda-12040",
18577            feature = "cuda-12050",
18578            feature = "cuda-12060",
18579            feature = "cuda-12080",
18580            feature = "cuda-12090"
18581        ))]
18582        pub cusolverDnPotrs: unsafe extern "C" fn(
18583            handle: cusolverDnHandle_t,
18584            params: cusolverDnParams_t,
18585            uplo: cublasFillMode_t,
18586            n: i64,
18587            nrhs: i64,
18588            dataTypeA: cudaDataType,
18589            A: *const ::core::ffi::c_void,
18590            lda: i64,
18591            dataTypeB: cudaDataType,
18592            B: *mut ::core::ffi::c_void,
18593            ldb: i64,
18594            info: *mut ::core::ffi::c_int,
18595        ) -> cusolverStatus_t,
18596        pub cusolverDnSBgels: unsafe extern "C" fn(
18597            handle: cusolverDnHandle_t,
18598            m: cusolver_int_t,
18599            n: cusolver_int_t,
18600            nrhs: cusolver_int_t,
18601            dA: *mut f32,
18602            ldda: cusolver_int_t,
18603            dB: *mut f32,
18604            lddb: cusolver_int_t,
18605            dX: *mut f32,
18606            lddx: cusolver_int_t,
18607            dWorkspace: *mut ::core::ffi::c_void,
18608            lwork_bytes: usize,
18609            iter: *mut cusolver_int_t,
18610            d_info: *mut cusolver_int_t,
18611        ) -> cusolverStatus_t,
18612        pub cusolverDnSBgels_bufferSize: unsafe extern "C" fn(
18613            handle: cusolverDnHandle_t,
18614            m: cusolver_int_t,
18615            n: cusolver_int_t,
18616            nrhs: cusolver_int_t,
18617            dA: *mut f32,
18618            ldda: cusolver_int_t,
18619            dB: *mut f32,
18620            lddb: cusolver_int_t,
18621            dX: *mut f32,
18622            lddx: cusolver_int_t,
18623            dWorkspace: *mut ::core::ffi::c_void,
18624            lwork_bytes: *mut usize,
18625        ) -> cusolverStatus_t,
18626        pub cusolverDnSBgesv: unsafe extern "C" fn(
18627            handle: cusolverDnHandle_t,
18628            n: cusolver_int_t,
18629            nrhs: cusolver_int_t,
18630            dA: *mut f32,
18631            ldda: cusolver_int_t,
18632            dipiv: *mut cusolver_int_t,
18633            dB: *mut f32,
18634            lddb: cusolver_int_t,
18635            dX: *mut f32,
18636            lddx: cusolver_int_t,
18637            dWorkspace: *mut ::core::ffi::c_void,
18638            lwork_bytes: usize,
18639            iter: *mut cusolver_int_t,
18640            d_info: *mut cusolver_int_t,
18641        ) -> cusolverStatus_t,
18642        pub cusolverDnSBgesv_bufferSize: unsafe extern "C" fn(
18643            handle: cusolverDnHandle_t,
18644            n: cusolver_int_t,
18645            nrhs: cusolver_int_t,
18646            dA: *mut f32,
18647            ldda: cusolver_int_t,
18648            dipiv: *mut cusolver_int_t,
18649            dB: *mut f32,
18650            lddb: cusolver_int_t,
18651            dX: *mut f32,
18652            lddx: cusolver_int_t,
18653            dWorkspace: *mut ::core::ffi::c_void,
18654            lwork_bytes: *mut usize,
18655        ) -> cusolverStatus_t,
18656        pub cusolverDnSHgels: unsafe extern "C" fn(
18657            handle: cusolverDnHandle_t,
18658            m: cusolver_int_t,
18659            n: cusolver_int_t,
18660            nrhs: cusolver_int_t,
18661            dA: *mut f32,
18662            ldda: cusolver_int_t,
18663            dB: *mut f32,
18664            lddb: cusolver_int_t,
18665            dX: *mut f32,
18666            lddx: cusolver_int_t,
18667            dWorkspace: *mut ::core::ffi::c_void,
18668            lwork_bytes: usize,
18669            iter: *mut cusolver_int_t,
18670            d_info: *mut cusolver_int_t,
18671        ) -> cusolverStatus_t,
18672        pub cusolverDnSHgels_bufferSize: unsafe extern "C" fn(
18673            handle: cusolverDnHandle_t,
18674            m: cusolver_int_t,
18675            n: cusolver_int_t,
18676            nrhs: cusolver_int_t,
18677            dA: *mut f32,
18678            ldda: cusolver_int_t,
18679            dB: *mut f32,
18680            lddb: cusolver_int_t,
18681            dX: *mut f32,
18682            lddx: cusolver_int_t,
18683            dWorkspace: *mut ::core::ffi::c_void,
18684            lwork_bytes: *mut usize,
18685        ) -> cusolverStatus_t,
18686        pub cusolverDnSHgesv: unsafe extern "C" fn(
18687            handle: cusolverDnHandle_t,
18688            n: cusolver_int_t,
18689            nrhs: cusolver_int_t,
18690            dA: *mut f32,
18691            ldda: cusolver_int_t,
18692            dipiv: *mut cusolver_int_t,
18693            dB: *mut f32,
18694            lddb: cusolver_int_t,
18695            dX: *mut f32,
18696            lddx: cusolver_int_t,
18697            dWorkspace: *mut ::core::ffi::c_void,
18698            lwork_bytes: usize,
18699            iter: *mut cusolver_int_t,
18700            d_info: *mut cusolver_int_t,
18701        ) -> cusolverStatus_t,
18702        pub cusolverDnSHgesv_bufferSize: unsafe extern "C" fn(
18703            handle: cusolverDnHandle_t,
18704            n: cusolver_int_t,
18705            nrhs: cusolver_int_t,
18706            dA: *mut f32,
18707            ldda: cusolver_int_t,
18708            dipiv: *mut cusolver_int_t,
18709            dB: *mut f32,
18710            lddb: cusolver_int_t,
18711            dX: *mut f32,
18712            lddx: cusolver_int_t,
18713            dWorkspace: *mut ::core::ffi::c_void,
18714            lwork_bytes: *mut usize,
18715        ) -> cusolverStatus_t,
18716        pub cusolverDnSSgels: unsafe extern "C" fn(
18717            handle: cusolverDnHandle_t,
18718            m: cusolver_int_t,
18719            n: cusolver_int_t,
18720            nrhs: cusolver_int_t,
18721            dA: *mut f32,
18722            ldda: cusolver_int_t,
18723            dB: *mut f32,
18724            lddb: cusolver_int_t,
18725            dX: *mut f32,
18726            lddx: cusolver_int_t,
18727            dWorkspace: *mut ::core::ffi::c_void,
18728            lwork_bytes: usize,
18729            iter: *mut cusolver_int_t,
18730            d_info: *mut cusolver_int_t,
18731        ) -> cusolverStatus_t,
18732        pub cusolverDnSSgels_bufferSize: unsafe extern "C" fn(
18733            handle: cusolverDnHandle_t,
18734            m: cusolver_int_t,
18735            n: cusolver_int_t,
18736            nrhs: cusolver_int_t,
18737            dA: *mut f32,
18738            ldda: cusolver_int_t,
18739            dB: *mut f32,
18740            lddb: cusolver_int_t,
18741            dX: *mut f32,
18742            lddx: cusolver_int_t,
18743            dWorkspace: *mut ::core::ffi::c_void,
18744            lwork_bytes: *mut usize,
18745        ) -> cusolverStatus_t,
18746        pub cusolverDnSSgesv: unsafe extern "C" fn(
18747            handle: cusolverDnHandle_t,
18748            n: cusolver_int_t,
18749            nrhs: cusolver_int_t,
18750            dA: *mut f32,
18751            ldda: cusolver_int_t,
18752            dipiv: *mut cusolver_int_t,
18753            dB: *mut f32,
18754            lddb: cusolver_int_t,
18755            dX: *mut f32,
18756            lddx: cusolver_int_t,
18757            dWorkspace: *mut ::core::ffi::c_void,
18758            lwork_bytes: usize,
18759            iter: *mut cusolver_int_t,
18760            d_info: *mut cusolver_int_t,
18761        ) -> cusolverStatus_t,
18762        pub cusolverDnSSgesv_bufferSize: unsafe extern "C" fn(
18763            handle: cusolverDnHandle_t,
18764            n: cusolver_int_t,
18765            nrhs: cusolver_int_t,
18766            dA: *mut f32,
18767            ldda: cusolver_int_t,
18768            dipiv: *mut cusolver_int_t,
18769            dB: *mut f32,
18770            lddb: cusolver_int_t,
18771            dX: *mut f32,
18772            lddx: cusolver_int_t,
18773            dWorkspace: *mut ::core::ffi::c_void,
18774            lwork_bytes: *mut usize,
18775        ) -> cusolverStatus_t,
18776        pub cusolverDnSXgels: unsafe extern "C" fn(
18777            handle: cusolverDnHandle_t,
18778            m: cusolver_int_t,
18779            n: cusolver_int_t,
18780            nrhs: cusolver_int_t,
18781            dA: *mut f32,
18782            ldda: cusolver_int_t,
18783            dB: *mut f32,
18784            lddb: cusolver_int_t,
18785            dX: *mut f32,
18786            lddx: cusolver_int_t,
18787            dWorkspace: *mut ::core::ffi::c_void,
18788            lwork_bytes: usize,
18789            iter: *mut cusolver_int_t,
18790            d_info: *mut cusolver_int_t,
18791        ) -> cusolverStatus_t,
18792        pub cusolverDnSXgels_bufferSize: unsafe extern "C" fn(
18793            handle: cusolverDnHandle_t,
18794            m: cusolver_int_t,
18795            n: cusolver_int_t,
18796            nrhs: cusolver_int_t,
18797            dA: *mut f32,
18798            ldda: cusolver_int_t,
18799            dB: *mut f32,
18800            lddb: cusolver_int_t,
18801            dX: *mut f32,
18802            lddx: cusolver_int_t,
18803            dWorkspace: *mut ::core::ffi::c_void,
18804            lwork_bytes: *mut usize,
18805        ) -> cusolverStatus_t,
18806        pub cusolverDnSXgesv: unsafe extern "C" fn(
18807            handle: cusolverDnHandle_t,
18808            n: cusolver_int_t,
18809            nrhs: cusolver_int_t,
18810            dA: *mut f32,
18811            ldda: cusolver_int_t,
18812            dipiv: *mut cusolver_int_t,
18813            dB: *mut f32,
18814            lddb: cusolver_int_t,
18815            dX: *mut f32,
18816            lddx: cusolver_int_t,
18817            dWorkspace: *mut ::core::ffi::c_void,
18818            lwork_bytes: usize,
18819            iter: *mut cusolver_int_t,
18820            d_info: *mut cusolver_int_t,
18821        ) -> cusolverStatus_t,
18822        pub cusolverDnSXgesv_bufferSize: unsafe extern "C" fn(
18823            handle: cusolverDnHandle_t,
18824            n: cusolver_int_t,
18825            nrhs: cusolver_int_t,
18826            dA: *mut f32,
18827            ldda: cusolver_int_t,
18828            dipiv: *mut cusolver_int_t,
18829            dB: *mut f32,
18830            lddb: cusolver_int_t,
18831            dX: *mut f32,
18832            lddx: cusolver_int_t,
18833            dWorkspace: *mut ::core::ffi::c_void,
18834            lwork_bytes: *mut usize,
18835        ) -> cusolverStatus_t,
18836        pub cusolverDnSetAdvOptions: unsafe extern "C" fn(
18837            params: cusolverDnParams_t,
18838            function: cusolverDnFunction_t,
18839            algo: cusolverAlgMode_t,
18840        ) -> cusolverStatus_t,
18841        #[cfg(any(
18842            feature = "cuda-12020",
18843            feature = "cuda-12030",
18844            feature = "cuda-12040",
18845            feature = "cuda-12050",
18846            feature = "cuda-12060",
18847            feature = "cuda-12080",
18848            feature = "cuda-12090",
18849            feature = "cuda-13000",
18850            feature = "cuda-13010"
18851        ))]
18852        pub cusolverDnSetDeterministicMode: unsafe extern "C" fn(
18853            handle: cusolverDnHandle_t,
18854            mode: cusolverDeterministicMode_t,
18855        ) -> cusolverStatus_t,
18856        #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
18857        pub cusolverDnSetEmulationStrategy: unsafe extern "C" fn(
18858            handle: cusolverDnHandle_t,
18859            strategy: cudaEmulationStrategy_t,
18860        ) -> cusolverStatus_t,
18861        #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
18862        pub cusolverDnSetMathMode: unsafe extern "C" fn(
18863            handle: cusolverDnHandle_t,
18864            mode: cusolverMathMode_t,
18865        ) -> cusolverStatus_t,
18866        pub cusolverDnSetStream: unsafe extern "C" fn(
18867            handle: cusolverDnHandle_t,
18868            streamId: cudaStream_t,
18869        ) -> cusolverStatus_t,
18870        pub cusolverDnSgebrd: unsafe extern "C" fn(
18871            handle: cusolverDnHandle_t,
18872            m: ::core::ffi::c_int,
18873            n: ::core::ffi::c_int,
18874            A: *mut f32,
18875            lda: ::core::ffi::c_int,
18876            D: *mut f32,
18877            E: *mut f32,
18878            TAUQ: *mut f32,
18879            TAUP: *mut f32,
18880            Work: *mut f32,
18881            Lwork: ::core::ffi::c_int,
18882            devInfo: *mut ::core::ffi::c_int,
18883        ) -> cusolverStatus_t,
18884        pub cusolverDnSgebrd_bufferSize: unsafe extern "C" fn(
18885            handle: cusolverDnHandle_t,
18886            m: ::core::ffi::c_int,
18887            n: ::core::ffi::c_int,
18888            Lwork: *mut ::core::ffi::c_int,
18889        ) -> cusolverStatus_t,
18890        pub cusolverDnSgeqrf: unsafe extern "C" fn(
18891            handle: cusolverDnHandle_t,
18892            m: ::core::ffi::c_int,
18893            n: ::core::ffi::c_int,
18894            A: *mut f32,
18895            lda: ::core::ffi::c_int,
18896            TAU: *mut f32,
18897            Workspace: *mut f32,
18898            Lwork: ::core::ffi::c_int,
18899            devInfo: *mut ::core::ffi::c_int,
18900        ) -> cusolverStatus_t,
18901        pub cusolverDnSgeqrf_bufferSize: unsafe extern "C" fn(
18902            handle: cusolverDnHandle_t,
18903            m: ::core::ffi::c_int,
18904            n: ::core::ffi::c_int,
18905            A: *mut f32,
18906            lda: ::core::ffi::c_int,
18907            lwork: *mut ::core::ffi::c_int,
18908        ) -> cusolverStatus_t,
18909        pub cusolverDnSgesvd: unsafe extern "C" fn(
18910            handle: cusolverDnHandle_t,
18911            jobu: ::core::ffi::c_schar,
18912            jobvt: ::core::ffi::c_schar,
18913            m: ::core::ffi::c_int,
18914            n: ::core::ffi::c_int,
18915            A: *mut f32,
18916            lda: ::core::ffi::c_int,
18917            S: *mut f32,
18918            U: *mut f32,
18919            ldu: ::core::ffi::c_int,
18920            VT: *mut f32,
18921            ldvt: ::core::ffi::c_int,
18922            work: *mut f32,
18923            lwork: ::core::ffi::c_int,
18924            rwork: *mut f32,
18925            info: *mut ::core::ffi::c_int,
18926        ) -> cusolverStatus_t,
18927        pub cusolverDnSgesvd_bufferSize: unsafe extern "C" fn(
18928            handle: cusolverDnHandle_t,
18929            m: ::core::ffi::c_int,
18930            n: ::core::ffi::c_int,
18931            lwork: *mut ::core::ffi::c_int,
18932        ) -> cusolverStatus_t,
18933        pub cusolverDnSgesvdaStridedBatched: unsafe extern "C" fn(
18934            handle: cusolverDnHandle_t,
18935            jobz: cusolverEigMode_t,
18936            rank: ::core::ffi::c_int,
18937            m: ::core::ffi::c_int,
18938            n: ::core::ffi::c_int,
18939            d_A: *const f32,
18940            lda: ::core::ffi::c_int,
18941            strideA: ::core::ffi::c_longlong,
18942            d_S: *mut f32,
18943            strideS: ::core::ffi::c_longlong,
18944            d_U: *mut f32,
18945            ldu: ::core::ffi::c_int,
18946            strideU: ::core::ffi::c_longlong,
18947            d_V: *mut f32,
18948            ldv: ::core::ffi::c_int,
18949            strideV: ::core::ffi::c_longlong,
18950            d_work: *mut f32,
18951            lwork: ::core::ffi::c_int,
18952            d_info: *mut ::core::ffi::c_int,
18953            h_R_nrmF: *mut f64,
18954            batchSize: ::core::ffi::c_int,
18955        ) -> cusolverStatus_t,
18956        pub cusolverDnSgesvdaStridedBatched_bufferSize: unsafe extern "C" fn(
18957            handle: cusolverDnHandle_t,
18958            jobz: cusolverEigMode_t,
18959            rank: ::core::ffi::c_int,
18960            m: ::core::ffi::c_int,
18961            n: ::core::ffi::c_int,
18962            d_A: *const f32,
18963            lda: ::core::ffi::c_int,
18964            strideA: ::core::ffi::c_longlong,
18965            d_S: *const f32,
18966            strideS: ::core::ffi::c_longlong,
18967            d_U: *const f32,
18968            ldu: ::core::ffi::c_int,
18969            strideU: ::core::ffi::c_longlong,
18970            d_V: *const f32,
18971            ldv: ::core::ffi::c_int,
18972            strideV: ::core::ffi::c_longlong,
18973            lwork: *mut ::core::ffi::c_int,
18974            batchSize: ::core::ffi::c_int,
18975        )
18976            -> cusolverStatus_t,
18977        pub cusolverDnSgesvdj: unsafe extern "C" fn(
18978            handle: cusolverDnHandle_t,
18979            jobz: cusolverEigMode_t,
18980            econ: ::core::ffi::c_int,
18981            m: ::core::ffi::c_int,
18982            n: ::core::ffi::c_int,
18983            A: *mut f32,
18984            lda: ::core::ffi::c_int,
18985            S: *mut f32,
18986            U: *mut f32,
18987            ldu: ::core::ffi::c_int,
18988            V: *mut f32,
18989            ldv: ::core::ffi::c_int,
18990            work: *mut f32,
18991            lwork: ::core::ffi::c_int,
18992            info: *mut ::core::ffi::c_int,
18993            params: gesvdjInfo_t,
18994        ) -> cusolverStatus_t,
18995        pub cusolverDnSgesvdjBatched: unsafe extern "C" fn(
18996            handle: cusolverDnHandle_t,
18997            jobz: cusolverEigMode_t,
18998            m: ::core::ffi::c_int,
18999            n: ::core::ffi::c_int,
19000            A: *mut f32,
19001            lda: ::core::ffi::c_int,
19002            S: *mut f32,
19003            U: *mut f32,
19004            ldu: ::core::ffi::c_int,
19005            V: *mut f32,
19006            ldv: ::core::ffi::c_int,
19007            work: *mut f32,
19008            lwork: ::core::ffi::c_int,
19009            info: *mut ::core::ffi::c_int,
19010            params: gesvdjInfo_t,
19011            batchSize: ::core::ffi::c_int,
19012        ) -> cusolverStatus_t,
19013        pub cusolverDnSgesvdjBatched_bufferSize: unsafe extern "C" fn(
19014            handle: cusolverDnHandle_t,
19015            jobz: cusolverEigMode_t,
19016            m: ::core::ffi::c_int,
19017            n: ::core::ffi::c_int,
19018            A: *const f32,
19019            lda: ::core::ffi::c_int,
19020            S: *const f32,
19021            U: *const f32,
19022            ldu: ::core::ffi::c_int,
19023            V: *const f32,
19024            ldv: ::core::ffi::c_int,
19025            lwork: *mut ::core::ffi::c_int,
19026            params: gesvdjInfo_t,
19027            batchSize: ::core::ffi::c_int,
19028        ) -> cusolverStatus_t,
19029        pub cusolverDnSgesvdj_bufferSize: unsafe extern "C" fn(
19030            handle: cusolverDnHandle_t,
19031            jobz: cusolverEigMode_t,
19032            econ: ::core::ffi::c_int,
19033            m: ::core::ffi::c_int,
19034            n: ::core::ffi::c_int,
19035            A: *const f32,
19036            lda: ::core::ffi::c_int,
19037            S: *const f32,
19038            U: *const f32,
19039            ldu: ::core::ffi::c_int,
19040            V: *const f32,
19041            ldv: ::core::ffi::c_int,
19042            lwork: *mut ::core::ffi::c_int,
19043            params: gesvdjInfo_t,
19044        ) -> cusolverStatus_t,
19045        pub cusolverDnSgetrf: unsafe extern "C" fn(
19046            handle: cusolverDnHandle_t,
19047            m: ::core::ffi::c_int,
19048            n: ::core::ffi::c_int,
19049            A: *mut f32,
19050            lda: ::core::ffi::c_int,
19051            Workspace: *mut f32,
19052            devIpiv: *mut ::core::ffi::c_int,
19053            devInfo: *mut ::core::ffi::c_int,
19054        ) -> cusolverStatus_t,
19055        pub cusolverDnSgetrf_bufferSize: unsafe extern "C" fn(
19056            handle: cusolverDnHandle_t,
19057            m: ::core::ffi::c_int,
19058            n: ::core::ffi::c_int,
19059            A: *mut f32,
19060            lda: ::core::ffi::c_int,
19061            Lwork: *mut ::core::ffi::c_int,
19062        ) -> cusolverStatus_t,
19063        pub cusolverDnSgetrs: unsafe extern "C" fn(
19064            handle: cusolverDnHandle_t,
19065            trans: cublasOperation_t,
19066            n: ::core::ffi::c_int,
19067            nrhs: ::core::ffi::c_int,
19068            A: *const f32,
19069            lda: ::core::ffi::c_int,
19070            devIpiv: *const ::core::ffi::c_int,
19071            B: *mut f32,
19072            ldb: ::core::ffi::c_int,
19073            devInfo: *mut ::core::ffi::c_int,
19074        ) -> cusolverStatus_t,
19075        pub cusolverDnSlaswp: unsafe extern "C" fn(
19076            handle: cusolverDnHandle_t,
19077            n: ::core::ffi::c_int,
19078            A: *mut f32,
19079            lda: ::core::ffi::c_int,
19080            k1: ::core::ffi::c_int,
19081            k2: ::core::ffi::c_int,
19082            devIpiv: *const ::core::ffi::c_int,
19083            incx: ::core::ffi::c_int,
19084        ) -> cusolverStatus_t,
19085        pub cusolverDnSlauum: unsafe extern "C" fn(
19086            handle: cusolverDnHandle_t,
19087            uplo: cublasFillMode_t,
19088            n: ::core::ffi::c_int,
19089            A: *mut f32,
19090            lda: ::core::ffi::c_int,
19091            work: *mut f32,
19092            lwork: ::core::ffi::c_int,
19093            devInfo: *mut ::core::ffi::c_int,
19094        ) -> cusolverStatus_t,
19095        pub cusolverDnSlauum_bufferSize: unsafe extern "C" fn(
19096            handle: cusolverDnHandle_t,
19097            uplo: cublasFillMode_t,
19098            n: ::core::ffi::c_int,
19099            A: *mut f32,
19100            lda: ::core::ffi::c_int,
19101            lwork: *mut ::core::ffi::c_int,
19102        ) -> cusolverStatus_t,
19103        pub cusolverDnSorgbr: unsafe extern "C" fn(
19104            handle: cusolverDnHandle_t,
19105            side: cublasSideMode_t,
19106            m: ::core::ffi::c_int,
19107            n: ::core::ffi::c_int,
19108            k: ::core::ffi::c_int,
19109            A: *mut f32,
19110            lda: ::core::ffi::c_int,
19111            tau: *const f32,
19112            work: *mut f32,
19113            lwork: ::core::ffi::c_int,
19114            info: *mut ::core::ffi::c_int,
19115        ) -> cusolverStatus_t,
19116        pub cusolverDnSorgbr_bufferSize: unsafe extern "C" fn(
19117            handle: cusolverDnHandle_t,
19118            side: cublasSideMode_t,
19119            m: ::core::ffi::c_int,
19120            n: ::core::ffi::c_int,
19121            k: ::core::ffi::c_int,
19122            A: *const f32,
19123            lda: ::core::ffi::c_int,
19124            tau: *const f32,
19125            lwork: *mut ::core::ffi::c_int,
19126        ) -> cusolverStatus_t,
19127        pub cusolverDnSorgqr: unsafe extern "C" fn(
19128            handle: cusolverDnHandle_t,
19129            m: ::core::ffi::c_int,
19130            n: ::core::ffi::c_int,
19131            k: ::core::ffi::c_int,
19132            A: *mut f32,
19133            lda: ::core::ffi::c_int,
19134            tau: *const f32,
19135            work: *mut f32,
19136            lwork: ::core::ffi::c_int,
19137            info: *mut ::core::ffi::c_int,
19138        ) -> cusolverStatus_t,
19139        pub cusolverDnSorgqr_bufferSize: unsafe extern "C" fn(
19140            handle: cusolverDnHandle_t,
19141            m: ::core::ffi::c_int,
19142            n: ::core::ffi::c_int,
19143            k: ::core::ffi::c_int,
19144            A: *const f32,
19145            lda: ::core::ffi::c_int,
19146            tau: *const f32,
19147            lwork: *mut ::core::ffi::c_int,
19148        ) -> cusolverStatus_t,
19149        pub cusolverDnSorgtr: unsafe extern "C" fn(
19150            handle: cusolverDnHandle_t,
19151            uplo: cublasFillMode_t,
19152            n: ::core::ffi::c_int,
19153            A: *mut f32,
19154            lda: ::core::ffi::c_int,
19155            tau: *const f32,
19156            work: *mut f32,
19157            lwork: ::core::ffi::c_int,
19158            info: *mut ::core::ffi::c_int,
19159        ) -> cusolverStatus_t,
19160        pub cusolverDnSorgtr_bufferSize: unsafe extern "C" fn(
19161            handle: cusolverDnHandle_t,
19162            uplo: cublasFillMode_t,
19163            n: ::core::ffi::c_int,
19164            A: *const f32,
19165            lda: ::core::ffi::c_int,
19166            tau: *const f32,
19167            lwork: *mut ::core::ffi::c_int,
19168        ) -> cusolverStatus_t,
19169        pub cusolverDnSormqr: unsafe extern "C" fn(
19170            handle: cusolverDnHandle_t,
19171            side: cublasSideMode_t,
19172            trans: cublasOperation_t,
19173            m: ::core::ffi::c_int,
19174            n: ::core::ffi::c_int,
19175            k: ::core::ffi::c_int,
19176            A: *const f32,
19177            lda: ::core::ffi::c_int,
19178            tau: *const f32,
19179            C: *mut f32,
19180            ldc: ::core::ffi::c_int,
19181            work: *mut f32,
19182            lwork: ::core::ffi::c_int,
19183            devInfo: *mut ::core::ffi::c_int,
19184        ) -> cusolverStatus_t,
19185        pub cusolverDnSormqr_bufferSize: unsafe extern "C" fn(
19186            handle: cusolverDnHandle_t,
19187            side: cublasSideMode_t,
19188            trans: cublasOperation_t,
19189            m: ::core::ffi::c_int,
19190            n: ::core::ffi::c_int,
19191            k: ::core::ffi::c_int,
19192            A: *const f32,
19193            lda: ::core::ffi::c_int,
19194            tau: *const f32,
19195            C: *const f32,
19196            ldc: ::core::ffi::c_int,
19197            lwork: *mut ::core::ffi::c_int,
19198        ) -> cusolverStatus_t,
19199        pub cusolverDnSormtr: unsafe extern "C" fn(
19200            handle: cusolverDnHandle_t,
19201            side: cublasSideMode_t,
19202            uplo: cublasFillMode_t,
19203            trans: cublasOperation_t,
19204            m: ::core::ffi::c_int,
19205            n: ::core::ffi::c_int,
19206            A: *mut f32,
19207            lda: ::core::ffi::c_int,
19208            tau: *mut f32,
19209            C: *mut f32,
19210            ldc: ::core::ffi::c_int,
19211            work: *mut f32,
19212            lwork: ::core::ffi::c_int,
19213            info: *mut ::core::ffi::c_int,
19214        ) -> cusolverStatus_t,
19215        pub cusolverDnSormtr_bufferSize: unsafe extern "C" fn(
19216            handle: cusolverDnHandle_t,
19217            side: cublasSideMode_t,
19218            uplo: cublasFillMode_t,
19219            trans: cublasOperation_t,
19220            m: ::core::ffi::c_int,
19221            n: ::core::ffi::c_int,
19222            A: *const f32,
19223            lda: ::core::ffi::c_int,
19224            tau: *const f32,
19225            C: *const f32,
19226            ldc: ::core::ffi::c_int,
19227            lwork: *mut ::core::ffi::c_int,
19228        ) -> cusolverStatus_t,
19229        pub cusolverDnSpotrf: unsafe extern "C" fn(
19230            handle: cusolverDnHandle_t,
19231            uplo: cublasFillMode_t,
19232            n: ::core::ffi::c_int,
19233            A: *mut f32,
19234            lda: ::core::ffi::c_int,
19235            Workspace: *mut f32,
19236            Lwork: ::core::ffi::c_int,
19237            devInfo: *mut ::core::ffi::c_int,
19238        ) -> cusolverStatus_t,
19239        pub cusolverDnSpotrfBatched: unsafe extern "C" fn(
19240            handle: cusolverDnHandle_t,
19241            uplo: cublasFillMode_t,
19242            n: ::core::ffi::c_int,
19243            Aarray: *mut *mut f32,
19244            lda: ::core::ffi::c_int,
19245            infoArray: *mut ::core::ffi::c_int,
19246            batchSize: ::core::ffi::c_int,
19247        ) -> cusolverStatus_t,
19248        pub cusolverDnSpotrf_bufferSize: unsafe extern "C" fn(
19249            handle: cusolverDnHandle_t,
19250            uplo: cublasFillMode_t,
19251            n: ::core::ffi::c_int,
19252            A: *mut f32,
19253            lda: ::core::ffi::c_int,
19254            Lwork: *mut ::core::ffi::c_int,
19255        ) -> cusolverStatus_t,
19256        pub cusolverDnSpotri: unsafe extern "C" fn(
19257            handle: cusolverDnHandle_t,
19258            uplo: cublasFillMode_t,
19259            n: ::core::ffi::c_int,
19260            A: *mut f32,
19261            lda: ::core::ffi::c_int,
19262            work: *mut f32,
19263            lwork: ::core::ffi::c_int,
19264            devInfo: *mut ::core::ffi::c_int,
19265        ) -> cusolverStatus_t,
19266        pub cusolverDnSpotri_bufferSize: unsafe extern "C" fn(
19267            handle: cusolverDnHandle_t,
19268            uplo: cublasFillMode_t,
19269            n: ::core::ffi::c_int,
19270            A: *mut f32,
19271            lda: ::core::ffi::c_int,
19272            lwork: *mut ::core::ffi::c_int,
19273        ) -> cusolverStatus_t,
19274        pub cusolverDnSpotrs: unsafe extern "C" fn(
19275            handle: cusolverDnHandle_t,
19276            uplo: cublasFillMode_t,
19277            n: ::core::ffi::c_int,
19278            nrhs: ::core::ffi::c_int,
19279            A: *const f32,
19280            lda: ::core::ffi::c_int,
19281            B: *mut f32,
19282            ldb: ::core::ffi::c_int,
19283            devInfo: *mut ::core::ffi::c_int,
19284        ) -> cusolverStatus_t,
19285        pub cusolverDnSpotrsBatched: unsafe extern "C" fn(
19286            handle: cusolverDnHandle_t,
19287            uplo: cublasFillMode_t,
19288            n: ::core::ffi::c_int,
19289            nrhs: ::core::ffi::c_int,
19290            A: *mut *mut f32,
19291            lda: ::core::ffi::c_int,
19292            B: *mut *mut f32,
19293            ldb: ::core::ffi::c_int,
19294            d_info: *mut ::core::ffi::c_int,
19295            batchSize: ::core::ffi::c_int,
19296        ) -> cusolverStatus_t,
19297        pub cusolverDnSsyevd: unsafe extern "C" fn(
19298            handle: cusolverDnHandle_t,
19299            jobz: cusolverEigMode_t,
19300            uplo: cublasFillMode_t,
19301            n: ::core::ffi::c_int,
19302            A: *mut f32,
19303            lda: ::core::ffi::c_int,
19304            W: *mut f32,
19305            work: *mut f32,
19306            lwork: ::core::ffi::c_int,
19307            info: *mut ::core::ffi::c_int,
19308        ) -> cusolverStatus_t,
19309        pub cusolverDnSsyevd_bufferSize: unsafe extern "C" fn(
19310            handle: cusolverDnHandle_t,
19311            jobz: cusolverEigMode_t,
19312            uplo: cublasFillMode_t,
19313            n: ::core::ffi::c_int,
19314            A: *const f32,
19315            lda: ::core::ffi::c_int,
19316            W: *const f32,
19317            lwork: *mut ::core::ffi::c_int,
19318        ) -> cusolverStatus_t,
19319        pub cusolverDnSsyevdx: unsafe extern "C" fn(
19320            handle: cusolverDnHandle_t,
19321            jobz: cusolverEigMode_t,
19322            range: cusolverEigRange_t,
19323            uplo: cublasFillMode_t,
19324            n: ::core::ffi::c_int,
19325            A: *mut f32,
19326            lda: ::core::ffi::c_int,
19327            vl: f32,
19328            vu: f32,
19329            il: ::core::ffi::c_int,
19330            iu: ::core::ffi::c_int,
19331            meig: *mut ::core::ffi::c_int,
19332            W: *mut f32,
19333            work: *mut f32,
19334            lwork: ::core::ffi::c_int,
19335            info: *mut ::core::ffi::c_int,
19336        ) -> cusolverStatus_t,
19337        pub cusolverDnSsyevdx_bufferSize: unsafe extern "C" fn(
19338            handle: cusolverDnHandle_t,
19339            jobz: cusolverEigMode_t,
19340            range: cusolverEigRange_t,
19341            uplo: cublasFillMode_t,
19342            n: ::core::ffi::c_int,
19343            A: *const f32,
19344            lda: ::core::ffi::c_int,
19345            vl: f32,
19346            vu: f32,
19347            il: ::core::ffi::c_int,
19348            iu: ::core::ffi::c_int,
19349            meig: *mut ::core::ffi::c_int,
19350            W: *const f32,
19351            lwork: *mut ::core::ffi::c_int,
19352        ) -> cusolverStatus_t,
19353        pub cusolverDnSsyevj: unsafe extern "C" fn(
19354            handle: cusolverDnHandle_t,
19355            jobz: cusolverEigMode_t,
19356            uplo: cublasFillMode_t,
19357            n: ::core::ffi::c_int,
19358            A: *mut f32,
19359            lda: ::core::ffi::c_int,
19360            W: *mut f32,
19361            work: *mut f32,
19362            lwork: ::core::ffi::c_int,
19363            info: *mut ::core::ffi::c_int,
19364            params: syevjInfo_t,
19365        ) -> cusolverStatus_t,
19366        pub cusolverDnSsyevjBatched: unsafe extern "C" fn(
19367            handle: cusolverDnHandle_t,
19368            jobz: cusolverEigMode_t,
19369            uplo: cublasFillMode_t,
19370            n: ::core::ffi::c_int,
19371            A: *mut f32,
19372            lda: ::core::ffi::c_int,
19373            W: *mut f32,
19374            work: *mut f32,
19375            lwork: ::core::ffi::c_int,
19376            info: *mut ::core::ffi::c_int,
19377            params: syevjInfo_t,
19378            batchSize: ::core::ffi::c_int,
19379        ) -> cusolverStatus_t,
19380        pub cusolverDnSsyevjBatched_bufferSize: unsafe extern "C" fn(
19381            handle: cusolverDnHandle_t,
19382            jobz: cusolverEigMode_t,
19383            uplo: cublasFillMode_t,
19384            n: ::core::ffi::c_int,
19385            A: *const f32,
19386            lda: ::core::ffi::c_int,
19387            W: *const f32,
19388            lwork: *mut ::core::ffi::c_int,
19389            params: syevjInfo_t,
19390            batchSize: ::core::ffi::c_int,
19391        ) -> cusolverStatus_t,
19392        pub cusolverDnSsyevj_bufferSize: unsafe extern "C" fn(
19393            handle: cusolverDnHandle_t,
19394            jobz: cusolverEigMode_t,
19395            uplo: cublasFillMode_t,
19396            n: ::core::ffi::c_int,
19397            A: *const f32,
19398            lda: ::core::ffi::c_int,
19399            W: *const f32,
19400            lwork: *mut ::core::ffi::c_int,
19401            params: syevjInfo_t,
19402        ) -> cusolverStatus_t,
19403        pub cusolverDnSsygvd: unsafe extern "C" fn(
19404            handle: cusolverDnHandle_t,
19405            itype: cusolverEigType_t,
19406            jobz: cusolverEigMode_t,
19407            uplo: cublasFillMode_t,
19408            n: ::core::ffi::c_int,
19409            A: *mut f32,
19410            lda: ::core::ffi::c_int,
19411            B: *mut f32,
19412            ldb: ::core::ffi::c_int,
19413            W: *mut f32,
19414            work: *mut f32,
19415            lwork: ::core::ffi::c_int,
19416            info: *mut ::core::ffi::c_int,
19417        ) -> cusolverStatus_t,
19418        pub cusolverDnSsygvd_bufferSize: unsafe extern "C" fn(
19419            handle: cusolverDnHandle_t,
19420            itype: cusolverEigType_t,
19421            jobz: cusolverEigMode_t,
19422            uplo: cublasFillMode_t,
19423            n: ::core::ffi::c_int,
19424            A: *const f32,
19425            lda: ::core::ffi::c_int,
19426            B: *const f32,
19427            ldb: ::core::ffi::c_int,
19428            W: *const f32,
19429            lwork: *mut ::core::ffi::c_int,
19430        ) -> cusolverStatus_t,
19431        pub cusolverDnSsygvdx: unsafe extern "C" fn(
19432            handle: cusolverDnHandle_t,
19433            itype: cusolverEigType_t,
19434            jobz: cusolverEigMode_t,
19435            range: cusolverEigRange_t,
19436            uplo: cublasFillMode_t,
19437            n: ::core::ffi::c_int,
19438            A: *mut f32,
19439            lda: ::core::ffi::c_int,
19440            B: *mut f32,
19441            ldb: ::core::ffi::c_int,
19442            vl: f32,
19443            vu: f32,
19444            il: ::core::ffi::c_int,
19445            iu: ::core::ffi::c_int,
19446            meig: *mut ::core::ffi::c_int,
19447            W: *mut f32,
19448            work: *mut f32,
19449            lwork: ::core::ffi::c_int,
19450            info: *mut ::core::ffi::c_int,
19451        ) -> cusolverStatus_t,
19452        pub cusolverDnSsygvdx_bufferSize: unsafe extern "C" fn(
19453            handle: cusolverDnHandle_t,
19454            itype: cusolverEigType_t,
19455            jobz: cusolverEigMode_t,
19456            range: cusolverEigRange_t,
19457            uplo: cublasFillMode_t,
19458            n: ::core::ffi::c_int,
19459            A: *const f32,
19460            lda: ::core::ffi::c_int,
19461            B: *const f32,
19462            ldb: ::core::ffi::c_int,
19463            vl: f32,
19464            vu: f32,
19465            il: ::core::ffi::c_int,
19466            iu: ::core::ffi::c_int,
19467            meig: *mut ::core::ffi::c_int,
19468            W: *const f32,
19469            lwork: *mut ::core::ffi::c_int,
19470        ) -> cusolverStatus_t,
19471        pub cusolverDnSsygvj: unsafe extern "C" fn(
19472            handle: cusolverDnHandle_t,
19473            itype: cusolverEigType_t,
19474            jobz: cusolverEigMode_t,
19475            uplo: cublasFillMode_t,
19476            n: ::core::ffi::c_int,
19477            A: *mut f32,
19478            lda: ::core::ffi::c_int,
19479            B: *mut f32,
19480            ldb: ::core::ffi::c_int,
19481            W: *mut f32,
19482            work: *mut f32,
19483            lwork: ::core::ffi::c_int,
19484            info: *mut ::core::ffi::c_int,
19485            params: syevjInfo_t,
19486        ) -> cusolverStatus_t,
19487        pub cusolverDnSsygvj_bufferSize: unsafe extern "C" fn(
19488            handle: cusolverDnHandle_t,
19489            itype: cusolverEigType_t,
19490            jobz: cusolverEigMode_t,
19491            uplo: cublasFillMode_t,
19492            n: ::core::ffi::c_int,
19493            A: *const f32,
19494            lda: ::core::ffi::c_int,
19495            B: *const f32,
19496            ldb: ::core::ffi::c_int,
19497            W: *const f32,
19498            lwork: *mut ::core::ffi::c_int,
19499            params: syevjInfo_t,
19500        ) -> cusolverStatus_t,
19501        pub cusolverDnSsytrd: unsafe extern "C" fn(
19502            handle: cusolverDnHandle_t,
19503            uplo: cublasFillMode_t,
19504            n: ::core::ffi::c_int,
19505            A: *mut f32,
19506            lda: ::core::ffi::c_int,
19507            d: *mut f32,
19508            e: *mut f32,
19509            tau: *mut f32,
19510            work: *mut f32,
19511            lwork: ::core::ffi::c_int,
19512            info: *mut ::core::ffi::c_int,
19513        ) -> cusolverStatus_t,
19514        pub cusolverDnSsytrd_bufferSize: unsafe extern "C" fn(
19515            handle: cusolverDnHandle_t,
19516            uplo: cublasFillMode_t,
19517            n: ::core::ffi::c_int,
19518            A: *const f32,
19519            lda: ::core::ffi::c_int,
19520            d: *const f32,
19521            e: *const f32,
19522            tau: *const f32,
19523            lwork: *mut ::core::ffi::c_int,
19524        ) -> cusolverStatus_t,
19525        pub cusolverDnSsytrf: unsafe extern "C" fn(
19526            handle: cusolverDnHandle_t,
19527            uplo: cublasFillMode_t,
19528            n: ::core::ffi::c_int,
19529            A: *mut f32,
19530            lda: ::core::ffi::c_int,
19531            ipiv: *mut ::core::ffi::c_int,
19532            work: *mut f32,
19533            lwork: ::core::ffi::c_int,
19534            info: *mut ::core::ffi::c_int,
19535        ) -> cusolverStatus_t,
19536        pub cusolverDnSsytrf_bufferSize: unsafe extern "C" fn(
19537            handle: cusolverDnHandle_t,
19538            n: ::core::ffi::c_int,
19539            A: *mut f32,
19540            lda: ::core::ffi::c_int,
19541            lwork: *mut ::core::ffi::c_int,
19542        ) -> cusolverStatus_t,
19543        pub cusolverDnSsytri: unsafe extern "C" fn(
19544            handle: cusolverDnHandle_t,
19545            uplo: cublasFillMode_t,
19546            n: ::core::ffi::c_int,
19547            A: *mut f32,
19548            lda: ::core::ffi::c_int,
19549            ipiv: *const ::core::ffi::c_int,
19550            work: *mut f32,
19551            lwork: ::core::ffi::c_int,
19552            info: *mut ::core::ffi::c_int,
19553        ) -> cusolverStatus_t,
19554        pub cusolverDnSsytri_bufferSize: unsafe extern "C" fn(
19555            handle: cusolverDnHandle_t,
19556            uplo: cublasFillMode_t,
19557            n: ::core::ffi::c_int,
19558            A: *mut f32,
19559            lda: ::core::ffi::c_int,
19560            ipiv: *const ::core::ffi::c_int,
19561            lwork: *mut ::core::ffi::c_int,
19562        ) -> cusolverStatus_t,
19563        #[cfg(any(
19564            feature = "cuda-11040",
19565            feature = "cuda-11050",
19566            feature = "cuda-11060",
19567            feature = "cuda-11070",
19568            feature = "cuda-11080",
19569            feature = "cuda-12000",
19570            feature = "cuda-12010",
19571            feature = "cuda-12020",
19572            feature = "cuda-12030",
19573            feature = "cuda-12040",
19574            feature = "cuda-12050",
19575            feature = "cuda-12060",
19576            feature = "cuda-12080",
19577            feature = "cuda-12090"
19578        ))]
19579        pub cusolverDnSyevd: unsafe extern "C" fn(
19580            handle: cusolverDnHandle_t,
19581            params: cusolverDnParams_t,
19582            jobz: cusolverEigMode_t,
19583            uplo: cublasFillMode_t,
19584            n: i64,
19585            dataTypeA: cudaDataType,
19586            A: *mut ::core::ffi::c_void,
19587            lda: i64,
19588            dataTypeW: cudaDataType,
19589            W: *mut ::core::ffi::c_void,
19590            computeType: cudaDataType,
19591            pBuffer: *mut ::core::ffi::c_void,
19592            workspaceInBytes: usize,
19593            info: *mut ::core::ffi::c_int,
19594        ) -> cusolverStatus_t,
19595        #[cfg(any(
19596            feature = "cuda-11040",
19597            feature = "cuda-11050",
19598            feature = "cuda-11060",
19599            feature = "cuda-11070",
19600            feature = "cuda-11080",
19601            feature = "cuda-12000",
19602            feature = "cuda-12010",
19603            feature = "cuda-12020",
19604            feature = "cuda-12030",
19605            feature = "cuda-12040",
19606            feature = "cuda-12050",
19607            feature = "cuda-12060",
19608            feature = "cuda-12080",
19609            feature = "cuda-12090"
19610        ))]
19611        pub cusolverDnSyevd_bufferSize: unsafe extern "C" fn(
19612            handle: cusolverDnHandle_t,
19613            params: cusolverDnParams_t,
19614            jobz: cusolverEigMode_t,
19615            uplo: cublasFillMode_t,
19616            n: i64,
19617            dataTypeA: cudaDataType,
19618            A: *const ::core::ffi::c_void,
19619            lda: i64,
19620            dataTypeW: cudaDataType,
19621            W: *const ::core::ffi::c_void,
19622            computeType: cudaDataType,
19623            workspaceInBytes: *mut usize,
19624        ) -> cusolverStatus_t,
19625        #[cfg(any(
19626            feature = "cuda-11040",
19627            feature = "cuda-11050",
19628            feature = "cuda-11060",
19629            feature = "cuda-11070",
19630            feature = "cuda-11080",
19631            feature = "cuda-12000",
19632            feature = "cuda-12010",
19633            feature = "cuda-12020",
19634            feature = "cuda-12030",
19635            feature = "cuda-12040",
19636            feature = "cuda-12050",
19637            feature = "cuda-12060",
19638            feature = "cuda-12080",
19639            feature = "cuda-12090"
19640        ))]
19641        pub cusolverDnSyevdx: unsafe extern "C" fn(
19642            handle: cusolverDnHandle_t,
19643            params: cusolverDnParams_t,
19644            jobz: cusolverEigMode_t,
19645            range: cusolverEigRange_t,
19646            uplo: cublasFillMode_t,
19647            n: i64,
19648            dataTypeA: cudaDataType,
19649            A: *mut ::core::ffi::c_void,
19650            lda: i64,
19651            vl: *mut ::core::ffi::c_void,
19652            vu: *mut ::core::ffi::c_void,
19653            il: i64,
19654            iu: i64,
19655            meig64: *mut i64,
19656            dataTypeW: cudaDataType,
19657            W: *mut ::core::ffi::c_void,
19658            computeType: cudaDataType,
19659            pBuffer: *mut ::core::ffi::c_void,
19660            workspaceInBytes: usize,
19661            info: *mut ::core::ffi::c_int,
19662        ) -> cusolverStatus_t,
19663        #[cfg(any(
19664            feature = "cuda-11040",
19665            feature = "cuda-11050",
19666            feature = "cuda-11060",
19667            feature = "cuda-11070",
19668            feature = "cuda-11080",
19669            feature = "cuda-12000",
19670            feature = "cuda-12010",
19671            feature = "cuda-12020",
19672            feature = "cuda-12030",
19673            feature = "cuda-12040",
19674            feature = "cuda-12050",
19675            feature = "cuda-12060",
19676            feature = "cuda-12080",
19677            feature = "cuda-12090"
19678        ))]
19679        pub cusolverDnSyevdx_bufferSize: unsafe extern "C" fn(
19680            handle: cusolverDnHandle_t,
19681            params: cusolverDnParams_t,
19682            jobz: cusolverEigMode_t,
19683            range: cusolverEigRange_t,
19684            uplo: cublasFillMode_t,
19685            n: i64,
19686            dataTypeA: cudaDataType,
19687            A: *const ::core::ffi::c_void,
19688            lda: i64,
19689            vl: *mut ::core::ffi::c_void,
19690            vu: *mut ::core::ffi::c_void,
19691            il: i64,
19692            iu: i64,
19693            h_meig: *mut i64,
19694            dataTypeW: cudaDataType,
19695            W: *const ::core::ffi::c_void,
19696            computeType: cudaDataType,
19697            workspaceInBytes: *mut usize,
19698        ) -> cusolverStatus_t,
19699        #[cfg(any(
19700            feature = "cuda-12060",
19701            feature = "cuda-12080",
19702            feature = "cuda-12090",
19703            feature = "cuda-13000",
19704            feature = "cuda-13010"
19705        ))]
19706        pub cusolverDnXgeev: unsafe extern "C" fn(
19707            handle: cusolverDnHandle_t,
19708            params: cusolverDnParams_t,
19709            jobvl: cusolverEigMode_t,
19710            jobvr: cusolverEigMode_t,
19711            n: i64,
19712            dataTypeA: cudaDataType,
19713            A: *mut ::core::ffi::c_void,
19714            lda: i64,
19715            dataTypeW: cudaDataType,
19716            W: *mut ::core::ffi::c_void,
19717            dataTypeVL: cudaDataType,
19718            VL: *mut ::core::ffi::c_void,
19719            ldvl: i64,
19720            dataTypeVR: cudaDataType,
19721            VR: *mut ::core::ffi::c_void,
19722            ldvr: i64,
19723            computeType: cudaDataType,
19724            bufferOnDevice: *mut ::core::ffi::c_void,
19725            workspaceInBytesOnDevice: usize,
19726            bufferOnHost: *mut ::core::ffi::c_void,
19727            workspaceInBytesOnHost: usize,
19728            info: *mut ::core::ffi::c_int,
19729        ) -> cusolverStatus_t,
19730        #[cfg(any(
19731            feature = "cuda-12060",
19732            feature = "cuda-12080",
19733            feature = "cuda-12090",
19734            feature = "cuda-13000",
19735            feature = "cuda-13010"
19736        ))]
19737        pub cusolverDnXgeev_bufferSize: unsafe extern "C" fn(
19738            handle: cusolverDnHandle_t,
19739            params: cusolverDnParams_t,
19740            jobvl: cusolverEigMode_t,
19741            jobvr: cusolverEigMode_t,
19742            n: i64,
19743            dataTypeA: cudaDataType,
19744            A: *const ::core::ffi::c_void,
19745            lda: i64,
19746            dataTypeW: cudaDataType,
19747            W: *const ::core::ffi::c_void,
19748            dataTypeVL: cudaDataType,
19749            VL: *const ::core::ffi::c_void,
19750            ldvl: i64,
19751            dataTypeVR: cudaDataType,
19752            VR: *const ::core::ffi::c_void,
19753            ldvr: i64,
19754            computeType: cudaDataType,
19755            workspaceInBytesOnDevice: *mut usize,
19756            workspaceInBytesOnHost: *mut usize,
19757        ) -> cusolverStatus_t,
19758        pub cusolverDnXgeqrf: unsafe extern "C" fn(
19759            handle: cusolverDnHandle_t,
19760            params: cusolverDnParams_t,
19761            m: i64,
19762            n: i64,
19763            dataTypeA: cudaDataType,
19764            A: *mut ::core::ffi::c_void,
19765            lda: i64,
19766            dataTypeTau: cudaDataType,
19767            tau: *mut ::core::ffi::c_void,
19768            computeType: cudaDataType,
19769            bufferOnDevice: *mut ::core::ffi::c_void,
19770            workspaceInBytesOnDevice: usize,
19771            bufferOnHost: *mut ::core::ffi::c_void,
19772            workspaceInBytesOnHost: usize,
19773            info: *mut ::core::ffi::c_int,
19774        ) -> cusolverStatus_t,
19775        pub cusolverDnXgeqrf_bufferSize: unsafe extern "C" fn(
19776            handle: cusolverDnHandle_t,
19777            params: cusolverDnParams_t,
19778            m: i64,
19779            n: i64,
19780            dataTypeA: cudaDataType,
19781            A: *const ::core::ffi::c_void,
19782            lda: i64,
19783            dataTypeTau: cudaDataType,
19784            tau: *const ::core::ffi::c_void,
19785            computeType: cudaDataType,
19786            workspaceInBytesOnDevice: *mut usize,
19787            workspaceInBytesOnHost: *mut usize,
19788        ) -> cusolverStatus_t,
19789        pub cusolverDnXgesvd: unsafe extern "C" fn(
19790            handle: cusolverDnHandle_t,
19791            params: cusolverDnParams_t,
19792            jobu: ::core::ffi::c_schar,
19793            jobvt: ::core::ffi::c_schar,
19794            m: i64,
19795            n: i64,
19796            dataTypeA: cudaDataType,
19797            A: *mut ::core::ffi::c_void,
19798            lda: i64,
19799            dataTypeS: cudaDataType,
19800            S: *mut ::core::ffi::c_void,
19801            dataTypeU: cudaDataType,
19802            U: *mut ::core::ffi::c_void,
19803            ldu: i64,
19804            dataTypeVT: cudaDataType,
19805            VT: *mut ::core::ffi::c_void,
19806            ldvt: i64,
19807            computeType: cudaDataType,
19808            bufferOnDevice: *mut ::core::ffi::c_void,
19809            workspaceInBytesOnDevice: usize,
19810            bufferOnHost: *mut ::core::ffi::c_void,
19811            workspaceInBytesOnHost: usize,
19812            info: *mut ::core::ffi::c_int,
19813        ) -> cusolverStatus_t,
19814        pub cusolverDnXgesvd_bufferSize: unsafe extern "C" fn(
19815            handle: cusolverDnHandle_t,
19816            params: cusolverDnParams_t,
19817            jobu: ::core::ffi::c_schar,
19818            jobvt: ::core::ffi::c_schar,
19819            m: i64,
19820            n: i64,
19821            dataTypeA: cudaDataType,
19822            A: *const ::core::ffi::c_void,
19823            lda: i64,
19824            dataTypeS: cudaDataType,
19825            S: *const ::core::ffi::c_void,
19826            dataTypeU: cudaDataType,
19827            U: *const ::core::ffi::c_void,
19828            ldu: i64,
19829            dataTypeVT: cudaDataType,
19830            VT: *const ::core::ffi::c_void,
19831            ldvt: i64,
19832            computeType: cudaDataType,
19833            workspaceInBytesOnDevice: *mut usize,
19834            workspaceInBytesOnHost: *mut usize,
19835        ) -> cusolverStatus_t,
19836        pub cusolverDnXgesvdjGetResidual: unsafe extern "C" fn(
19837            handle: cusolverDnHandle_t,
19838            info: gesvdjInfo_t,
19839            residual: *mut f64,
19840        ) -> cusolverStatus_t,
19841        pub cusolverDnXgesvdjGetSweeps: unsafe extern "C" fn(
19842            handle: cusolverDnHandle_t,
19843            info: gesvdjInfo_t,
19844            executed_sweeps: *mut ::core::ffi::c_int,
19845        ) -> cusolverStatus_t,
19846        pub cusolverDnXgesvdjSetMaxSweeps: unsafe extern "C" fn(
19847            info: gesvdjInfo_t,
19848            max_sweeps: ::core::ffi::c_int,
19849        ) -> cusolverStatus_t,
19850        pub cusolverDnXgesvdjSetSortEig: unsafe extern "C" fn(
19851            info: gesvdjInfo_t,
19852            sort_svd: ::core::ffi::c_int,
19853        ) -> cusolverStatus_t,
19854        pub cusolverDnXgesvdjSetTolerance:
19855            unsafe extern "C" fn(info: gesvdjInfo_t, tolerance: f64) -> cusolverStatus_t,
19856        pub cusolverDnXgesvdp: unsafe extern "C" fn(
19857            handle: cusolverDnHandle_t,
19858            params: cusolverDnParams_t,
19859            jobz: cusolverEigMode_t,
19860            econ: ::core::ffi::c_int,
19861            m: i64,
19862            n: i64,
19863            dataTypeA: cudaDataType,
19864            A: *mut ::core::ffi::c_void,
19865            lda: i64,
19866            dataTypeS: cudaDataType,
19867            S: *mut ::core::ffi::c_void,
19868            dataTypeU: cudaDataType,
19869            U: *mut ::core::ffi::c_void,
19870            ldu: i64,
19871            dataTypeV: cudaDataType,
19872            V: *mut ::core::ffi::c_void,
19873            ldv: i64,
19874            computeType: cudaDataType,
19875            bufferOnDevice: *mut ::core::ffi::c_void,
19876            workspaceInBytesOnDevice: usize,
19877            bufferOnHost: *mut ::core::ffi::c_void,
19878            workspaceInBytesOnHost: usize,
19879            d_info: *mut ::core::ffi::c_int,
19880            h_err_sigma: *mut f64,
19881        ) -> cusolverStatus_t,
19882        pub cusolverDnXgesvdp_bufferSize: unsafe extern "C" fn(
19883            handle: cusolverDnHandle_t,
19884            params: cusolverDnParams_t,
19885            jobz: cusolverEigMode_t,
19886            econ: ::core::ffi::c_int,
19887            m: i64,
19888            n: i64,
19889            dataTypeA: cudaDataType,
19890            A: *const ::core::ffi::c_void,
19891            lda: i64,
19892            dataTypeS: cudaDataType,
19893            S: *const ::core::ffi::c_void,
19894            dataTypeU: cudaDataType,
19895            U: *const ::core::ffi::c_void,
19896            ldu: i64,
19897            dataTypeV: cudaDataType,
19898            V: *const ::core::ffi::c_void,
19899            ldv: i64,
19900            computeType: cudaDataType,
19901            workspaceInBytesOnDevice: *mut usize,
19902            workspaceInBytesOnHost: *mut usize,
19903        ) -> cusolverStatus_t,
19904        pub cusolverDnXgesvdr: unsafe extern "C" fn(
19905            handle: cusolverDnHandle_t,
19906            params: cusolverDnParams_t,
19907            jobu: ::core::ffi::c_schar,
19908            jobv: ::core::ffi::c_schar,
19909            m: i64,
19910            n: i64,
19911            k: i64,
19912            p: i64,
19913            niters: i64,
19914            dataTypeA: cudaDataType,
19915            A: *mut ::core::ffi::c_void,
19916            lda: i64,
19917            dataTypeSrand: cudaDataType,
19918            Srand: *mut ::core::ffi::c_void,
19919            dataTypeUrand: cudaDataType,
19920            Urand: *mut ::core::ffi::c_void,
19921            ldUrand: i64,
19922            dataTypeVrand: cudaDataType,
19923            Vrand: *mut ::core::ffi::c_void,
19924            ldVrand: i64,
19925            computeType: cudaDataType,
19926            bufferOnDevice: *mut ::core::ffi::c_void,
19927            workspaceInBytesOnDevice: usize,
19928            bufferOnHost: *mut ::core::ffi::c_void,
19929            workspaceInBytesOnHost: usize,
19930            d_info: *mut ::core::ffi::c_int,
19931        ) -> cusolverStatus_t,
19932        pub cusolverDnXgesvdr_bufferSize: unsafe extern "C" fn(
19933            handle: cusolverDnHandle_t,
19934            params: cusolverDnParams_t,
19935            jobu: ::core::ffi::c_schar,
19936            jobv: ::core::ffi::c_schar,
19937            m: i64,
19938            n: i64,
19939            k: i64,
19940            p: i64,
19941            niters: i64,
19942            dataTypeA: cudaDataType,
19943            A: *const ::core::ffi::c_void,
19944            lda: i64,
19945            dataTypeSrand: cudaDataType,
19946            Srand: *const ::core::ffi::c_void,
19947            dataTypeUrand: cudaDataType,
19948            Urand: *const ::core::ffi::c_void,
19949            ldUrand: i64,
19950            dataTypeVrand: cudaDataType,
19951            Vrand: *const ::core::ffi::c_void,
19952            ldVrand: i64,
19953            computeType: cudaDataType,
19954            workspaceInBytesOnDevice: *mut usize,
19955            workspaceInBytesOnHost: *mut usize,
19956        ) -> cusolverStatus_t,
19957        pub cusolverDnXgetrf: unsafe extern "C" fn(
19958            handle: cusolverDnHandle_t,
19959            params: cusolverDnParams_t,
19960            m: i64,
19961            n: i64,
19962            dataTypeA: cudaDataType,
19963            A: *mut ::core::ffi::c_void,
19964            lda: i64,
19965            ipiv: *mut i64,
19966            computeType: cudaDataType,
19967            bufferOnDevice: *mut ::core::ffi::c_void,
19968            workspaceInBytesOnDevice: usize,
19969            bufferOnHost: *mut ::core::ffi::c_void,
19970            workspaceInBytesOnHost: usize,
19971            info: *mut ::core::ffi::c_int,
19972        ) -> cusolverStatus_t,
19973        pub cusolverDnXgetrf_bufferSize: unsafe extern "C" fn(
19974            handle: cusolverDnHandle_t,
19975            params: cusolverDnParams_t,
19976            m: i64,
19977            n: i64,
19978            dataTypeA: cudaDataType,
19979            A: *const ::core::ffi::c_void,
19980            lda: i64,
19981            computeType: cudaDataType,
19982            workspaceInBytesOnDevice: *mut usize,
19983            workspaceInBytesOnHost: *mut usize,
19984        ) -> cusolverStatus_t,
19985        pub cusolverDnXgetrs: unsafe extern "C" fn(
19986            handle: cusolverDnHandle_t,
19987            params: cusolverDnParams_t,
19988            trans: cublasOperation_t,
19989            n: i64,
19990            nrhs: i64,
19991            dataTypeA: cudaDataType,
19992            A: *const ::core::ffi::c_void,
19993            lda: i64,
19994            ipiv: *const i64,
19995            dataTypeB: cudaDataType,
19996            B: *mut ::core::ffi::c_void,
19997            ldb: i64,
19998            info: *mut ::core::ffi::c_int,
19999        ) -> cusolverStatus_t,
20000        #[cfg(any(feature = "cuda-12040"))]
20001        pub cusolverDnXlarft: unsafe extern "C" fn(
20002            handle: cusolverDnHandle_t,
20003            params: cusolverDnParams_t,
20004            direct: cusolverDirectMode_t,
20005            storev: cusolverStorevMode_t,
20006            N: i64,
20007            K: i64,
20008            dataTypeV: cudaDataType,
20009            d_V: *const ::core::ffi::c_void,
20010            ldv: i64,
20011            dataTypeTau: cudaDataType,
20012            d_tau: *const ::core::ffi::c_void,
20013            dataTypeT: cudaDataType,
20014            d_T: *mut ::core::ffi::c_void,
20015            ldt: i64,
20016            computeType: cudaDataType,
20017            bufferOnDevice: *mut ::core::ffi::c_void,
20018            workspaceInBytesOnDevice: usize,
20019            bufferOnHost: *mut ::core::ffi::c_void,
20020            workspaceInBytesOnHost: usize,
20021        ) -> cusolverStatus_t,
20022        #[cfg(any(
20023            feature = "cuda-12050",
20024            feature = "cuda-12060",
20025            feature = "cuda-12080",
20026            feature = "cuda-12090",
20027            feature = "cuda-13000",
20028            feature = "cuda-13010"
20029        ))]
20030        pub cusolverDnXlarft: unsafe extern "C" fn(
20031            handle: cusolverDnHandle_t,
20032            params: cusolverDnParams_t,
20033            direct: cusolverDirectMode_t,
20034            storev: cusolverStorevMode_t,
20035            n: i64,
20036            k: i64,
20037            dataTypeV: cudaDataType,
20038            V: *const ::core::ffi::c_void,
20039            ldv: i64,
20040            dataTypeTau: cudaDataType,
20041            tau: *const ::core::ffi::c_void,
20042            dataTypeT: cudaDataType,
20043            T: *mut ::core::ffi::c_void,
20044            ldt: i64,
20045            computeType: cudaDataType,
20046            bufferOnDevice: *mut ::core::ffi::c_void,
20047            workspaceInBytesOnDevice: usize,
20048            bufferOnHost: *mut ::core::ffi::c_void,
20049            workspaceInBytesOnHost: usize,
20050        ) -> cusolverStatus_t,
20051        #[cfg(any(feature = "cuda-12040"))]
20052        pub cusolverDnXlarft_bufferSize: unsafe extern "C" fn(
20053            handle: cusolverDnHandle_t,
20054            params: cusolverDnParams_t,
20055            direct: cusolverDirectMode_t,
20056            storev: cusolverStorevMode_t,
20057            N: i64,
20058            K: i64,
20059            dataTypeV: cudaDataType,
20060            d_V: *const ::core::ffi::c_void,
20061            ldv: i64,
20062            dataTypeTau: cudaDataType,
20063            d_tau: *const ::core::ffi::c_void,
20064            dataTypeT: cudaDataType,
20065            d_T: *mut ::core::ffi::c_void,
20066            ldt: i64,
20067            computeType: cudaDataType,
20068            workspaceInBytesOnDevice: *mut usize,
20069            workspaceInBytesOnHost: *mut usize,
20070        ) -> cusolverStatus_t,
20071        #[cfg(any(
20072            feature = "cuda-12050",
20073            feature = "cuda-12060",
20074            feature = "cuda-12080",
20075            feature = "cuda-12090",
20076            feature = "cuda-13000",
20077            feature = "cuda-13010"
20078        ))]
20079        pub cusolverDnXlarft_bufferSize: unsafe extern "C" fn(
20080            handle: cusolverDnHandle_t,
20081            params: cusolverDnParams_t,
20082            direct: cusolverDirectMode_t,
20083            storev: cusolverStorevMode_t,
20084            n: i64,
20085            k: i64,
20086            dataTypeV: cudaDataType,
20087            V: *const ::core::ffi::c_void,
20088            ldv: i64,
20089            dataTypeTau: cudaDataType,
20090            tau: *const ::core::ffi::c_void,
20091            dataTypeT: cudaDataType,
20092            T: *mut ::core::ffi::c_void,
20093            ldt: i64,
20094            computeType: cudaDataType,
20095            workspaceInBytesOnDevice: *mut usize,
20096            workspaceInBytesOnHost: *mut usize,
20097        ) -> cusolverStatus_t,
20098        pub cusolverDnXpotrf: unsafe extern "C" fn(
20099            handle: cusolverDnHandle_t,
20100            params: cusolverDnParams_t,
20101            uplo: cublasFillMode_t,
20102            n: i64,
20103            dataTypeA: cudaDataType,
20104            A: *mut ::core::ffi::c_void,
20105            lda: i64,
20106            computeType: cudaDataType,
20107            bufferOnDevice: *mut ::core::ffi::c_void,
20108            workspaceInBytesOnDevice: usize,
20109            bufferOnHost: *mut ::core::ffi::c_void,
20110            workspaceInBytesOnHost: usize,
20111            info: *mut ::core::ffi::c_int,
20112        ) -> cusolverStatus_t,
20113        pub cusolverDnXpotrf_bufferSize: unsafe extern "C" fn(
20114            handle: cusolverDnHandle_t,
20115            params: cusolverDnParams_t,
20116            uplo: cublasFillMode_t,
20117            n: i64,
20118            dataTypeA: cudaDataType,
20119            A: *const ::core::ffi::c_void,
20120            lda: i64,
20121            computeType: cudaDataType,
20122            workspaceInBytesOnDevice: *mut usize,
20123            workspaceInBytesOnHost: *mut usize,
20124        ) -> cusolverStatus_t,
20125        pub cusolverDnXpotrs: unsafe extern "C" fn(
20126            handle: cusolverDnHandle_t,
20127            params: cusolverDnParams_t,
20128            uplo: cublasFillMode_t,
20129            n: i64,
20130            nrhs: i64,
20131            dataTypeA: cudaDataType,
20132            A: *const ::core::ffi::c_void,
20133            lda: i64,
20134            dataTypeB: cudaDataType,
20135            B: *mut ::core::ffi::c_void,
20136            ldb: i64,
20137            info: *mut ::core::ffi::c_int,
20138        ) -> cusolverStatus_t,
20139        #[cfg(any(
20140            feature = "cuda-12060",
20141            feature = "cuda-12080",
20142            feature = "cuda-12090",
20143            feature = "cuda-13000",
20144            feature = "cuda-13010"
20145        ))]
20146        pub cusolverDnXsyevBatched: unsafe extern "C" fn(
20147            handle: cusolverDnHandle_t,
20148            params: cusolverDnParams_t,
20149            jobz: cusolverEigMode_t,
20150            uplo: cublasFillMode_t,
20151            n: i64,
20152            dataTypeA: cudaDataType,
20153            A: *mut ::core::ffi::c_void,
20154            lda: i64,
20155            dataTypeW: cudaDataType,
20156            W: *mut ::core::ffi::c_void,
20157            computeType: cudaDataType,
20158            bufferOnDevice: *mut ::core::ffi::c_void,
20159            workspaceInBytesOnDevice: usize,
20160            bufferOnHost: *mut ::core::ffi::c_void,
20161            workspaceInBytesOnHost: usize,
20162            info: *mut ::core::ffi::c_int,
20163            batchSize: i64,
20164        ) -> cusolverStatus_t,
20165        #[cfg(any(
20166            feature = "cuda-12060",
20167            feature = "cuda-12080",
20168            feature = "cuda-12090",
20169            feature = "cuda-13000",
20170            feature = "cuda-13010"
20171        ))]
20172        pub cusolverDnXsyevBatched_bufferSize: unsafe extern "C" fn(
20173            handle: cusolverDnHandle_t,
20174            params: cusolverDnParams_t,
20175            jobz: cusolverEigMode_t,
20176            uplo: cublasFillMode_t,
20177            n: i64,
20178            dataTypeA: cudaDataType,
20179            A: *const ::core::ffi::c_void,
20180            lda: i64,
20181            dataTypeW: cudaDataType,
20182            W: *const ::core::ffi::c_void,
20183            computeType: cudaDataType,
20184            workspaceInBytesOnDevice: *mut usize,
20185            workspaceInBytesOnHost: *mut usize,
20186            batchSize: i64,
20187        ) -> cusolverStatus_t,
20188        pub cusolverDnXsyevd: unsafe extern "C" fn(
20189            handle: cusolverDnHandle_t,
20190            params: cusolverDnParams_t,
20191            jobz: cusolverEigMode_t,
20192            uplo: cublasFillMode_t,
20193            n: i64,
20194            dataTypeA: cudaDataType,
20195            A: *mut ::core::ffi::c_void,
20196            lda: i64,
20197            dataTypeW: cudaDataType,
20198            W: *mut ::core::ffi::c_void,
20199            computeType: cudaDataType,
20200            bufferOnDevice: *mut ::core::ffi::c_void,
20201            workspaceInBytesOnDevice: usize,
20202            bufferOnHost: *mut ::core::ffi::c_void,
20203            workspaceInBytesOnHost: usize,
20204            info: *mut ::core::ffi::c_int,
20205        ) -> cusolverStatus_t,
20206        pub cusolverDnXsyevd_bufferSize: unsafe extern "C" fn(
20207            handle: cusolverDnHandle_t,
20208            params: cusolverDnParams_t,
20209            jobz: cusolverEigMode_t,
20210            uplo: cublasFillMode_t,
20211            n: i64,
20212            dataTypeA: cudaDataType,
20213            A: *const ::core::ffi::c_void,
20214            lda: i64,
20215            dataTypeW: cudaDataType,
20216            W: *const ::core::ffi::c_void,
20217            computeType: cudaDataType,
20218            workspaceInBytesOnDevice: *mut usize,
20219            workspaceInBytesOnHost: *mut usize,
20220        ) -> cusolverStatus_t,
20221        pub cusolverDnXsyevdx: unsafe extern "C" fn(
20222            handle: cusolverDnHandle_t,
20223            params: cusolverDnParams_t,
20224            jobz: cusolverEigMode_t,
20225            range: cusolverEigRange_t,
20226            uplo: cublasFillMode_t,
20227            n: i64,
20228            dataTypeA: cudaDataType,
20229            A: *mut ::core::ffi::c_void,
20230            lda: i64,
20231            vl: *mut ::core::ffi::c_void,
20232            vu: *mut ::core::ffi::c_void,
20233            il: i64,
20234            iu: i64,
20235            meig64: *mut i64,
20236            dataTypeW: cudaDataType,
20237            W: *mut ::core::ffi::c_void,
20238            computeType: cudaDataType,
20239            bufferOnDevice: *mut ::core::ffi::c_void,
20240            workspaceInBytesOnDevice: usize,
20241            bufferOnHost: *mut ::core::ffi::c_void,
20242            workspaceInBytesOnHost: usize,
20243            info: *mut ::core::ffi::c_int,
20244        ) -> cusolverStatus_t,
20245        pub cusolverDnXsyevdx_bufferSize: unsafe extern "C" fn(
20246            handle: cusolverDnHandle_t,
20247            params: cusolverDnParams_t,
20248            jobz: cusolverEigMode_t,
20249            range: cusolverEigRange_t,
20250            uplo: cublasFillMode_t,
20251            n: i64,
20252            dataTypeA: cudaDataType,
20253            A: *const ::core::ffi::c_void,
20254            lda: i64,
20255            vl: *mut ::core::ffi::c_void,
20256            vu: *mut ::core::ffi::c_void,
20257            il: i64,
20258            iu: i64,
20259            h_meig: *mut i64,
20260            dataTypeW: cudaDataType,
20261            W: *const ::core::ffi::c_void,
20262            computeType: cudaDataType,
20263            workspaceInBytesOnDevice: *mut usize,
20264            workspaceInBytesOnHost: *mut usize,
20265        ) -> cusolverStatus_t,
20266        pub cusolverDnXsyevjGetResidual: unsafe extern "C" fn(
20267            handle: cusolverDnHandle_t,
20268            info: syevjInfo_t,
20269            residual: *mut f64,
20270        ) -> cusolverStatus_t,
20271        pub cusolverDnXsyevjGetSweeps: unsafe extern "C" fn(
20272            handle: cusolverDnHandle_t,
20273            info: syevjInfo_t,
20274            executed_sweeps: *mut ::core::ffi::c_int,
20275        ) -> cusolverStatus_t,
20276        pub cusolverDnXsyevjSetMaxSweeps: unsafe extern "C" fn(
20277            info: syevjInfo_t,
20278            max_sweeps: ::core::ffi::c_int,
20279        ) -> cusolverStatus_t,
20280        pub cusolverDnXsyevjSetSortEig: unsafe extern "C" fn(
20281            info: syevjInfo_t,
20282            sort_eig: ::core::ffi::c_int,
20283        ) -> cusolverStatus_t,
20284        pub cusolverDnXsyevjSetTolerance:
20285            unsafe extern "C" fn(info: syevjInfo_t, tolerance: f64) -> cusolverStatus_t,
20286        pub cusolverDnXsytrs: unsafe extern "C" fn(
20287            handle: cusolverDnHandle_t,
20288            uplo: cublasFillMode_t,
20289            n: i64,
20290            nrhs: i64,
20291            dataTypeA: cudaDataType,
20292            A: *const ::core::ffi::c_void,
20293            lda: i64,
20294            ipiv: *const i64,
20295            dataTypeB: cudaDataType,
20296            B: *mut ::core::ffi::c_void,
20297            ldb: i64,
20298            bufferOnDevice: *mut ::core::ffi::c_void,
20299            workspaceInBytesOnDevice: usize,
20300            bufferOnHost: *mut ::core::ffi::c_void,
20301            workspaceInBytesOnHost: usize,
20302            info: *mut ::core::ffi::c_int,
20303        ) -> cusolverStatus_t,
20304        pub cusolverDnXsytrs_bufferSize: unsafe extern "C" fn(
20305            handle: cusolverDnHandle_t,
20306            uplo: cublasFillMode_t,
20307            n: i64,
20308            nrhs: i64,
20309            dataTypeA: cudaDataType,
20310            A: *const ::core::ffi::c_void,
20311            lda: i64,
20312            ipiv: *const i64,
20313            dataTypeB: cudaDataType,
20314            B: *mut ::core::ffi::c_void,
20315            ldb: i64,
20316            workspaceInBytesOnDevice: *mut usize,
20317            workspaceInBytesOnHost: *mut usize,
20318        ) -> cusolverStatus_t,
20319        pub cusolverDnXtrtri: unsafe extern "C" fn(
20320            handle: cusolverDnHandle_t,
20321            uplo: cublasFillMode_t,
20322            diag: cublasDiagType_t,
20323            n: i64,
20324            dataTypeA: cudaDataType,
20325            A: *mut ::core::ffi::c_void,
20326            lda: i64,
20327            bufferOnDevice: *mut ::core::ffi::c_void,
20328            workspaceInBytesOnDevice: usize,
20329            bufferOnHost: *mut ::core::ffi::c_void,
20330            workspaceInBytesOnHost: usize,
20331            devInfo: *mut ::core::ffi::c_int,
20332        ) -> cusolverStatus_t,
20333        pub cusolverDnXtrtri_bufferSize: unsafe extern "C" fn(
20334            handle: cusolverDnHandle_t,
20335            uplo: cublasFillMode_t,
20336            diag: cublasDiagType_t,
20337            n: i64,
20338            dataTypeA: cudaDataType,
20339            A: *mut ::core::ffi::c_void,
20340            lda: i64,
20341            workspaceInBytesOnDevice: *mut usize,
20342            workspaceInBytesOnHost: *mut usize,
20343        ) -> cusolverStatus_t,
20344        pub cusolverDnZCgels: unsafe extern "C" fn(
20345            handle: cusolverDnHandle_t,
20346            m: cusolver_int_t,
20347            n: cusolver_int_t,
20348            nrhs: cusolver_int_t,
20349            dA: *mut cuDoubleComplex,
20350            ldda: cusolver_int_t,
20351            dB: *mut cuDoubleComplex,
20352            lddb: cusolver_int_t,
20353            dX: *mut cuDoubleComplex,
20354            lddx: cusolver_int_t,
20355            dWorkspace: *mut ::core::ffi::c_void,
20356            lwork_bytes: usize,
20357            iter: *mut cusolver_int_t,
20358            d_info: *mut cusolver_int_t,
20359        ) -> cusolverStatus_t,
20360        pub cusolverDnZCgels_bufferSize: unsafe extern "C" fn(
20361            handle: cusolverDnHandle_t,
20362            m: cusolver_int_t,
20363            n: cusolver_int_t,
20364            nrhs: cusolver_int_t,
20365            dA: *mut cuDoubleComplex,
20366            ldda: cusolver_int_t,
20367            dB: *mut cuDoubleComplex,
20368            lddb: cusolver_int_t,
20369            dX: *mut cuDoubleComplex,
20370            lddx: cusolver_int_t,
20371            dWorkspace: *mut ::core::ffi::c_void,
20372            lwork_bytes: *mut usize,
20373        ) -> cusolverStatus_t,
20374        pub cusolverDnZCgesv: unsafe extern "C" fn(
20375            handle: cusolverDnHandle_t,
20376            n: cusolver_int_t,
20377            nrhs: cusolver_int_t,
20378            dA: *mut cuDoubleComplex,
20379            ldda: cusolver_int_t,
20380            dipiv: *mut cusolver_int_t,
20381            dB: *mut cuDoubleComplex,
20382            lddb: cusolver_int_t,
20383            dX: *mut cuDoubleComplex,
20384            lddx: cusolver_int_t,
20385            dWorkspace: *mut ::core::ffi::c_void,
20386            lwork_bytes: usize,
20387            iter: *mut cusolver_int_t,
20388            d_info: *mut cusolver_int_t,
20389        ) -> cusolverStatus_t,
20390        pub cusolverDnZCgesv_bufferSize: unsafe extern "C" fn(
20391            handle: cusolverDnHandle_t,
20392            n: cusolver_int_t,
20393            nrhs: cusolver_int_t,
20394            dA: *mut cuDoubleComplex,
20395            ldda: cusolver_int_t,
20396            dipiv: *mut cusolver_int_t,
20397            dB: *mut cuDoubleComplex,
20398            lddb: cusolver_int_t,
20399            dX: *mut cuDoubleComplex,
20400            lddx: cusolver_int_t,
20401            dWorkspace: *mut ::core::ffi::c_void,
20402            lwork_bytes: *mut usize,
20403        ) -> cusolverStatus_t,
20404        pub cusolverDnZEgels: unsafe extern "C" fn(
20405            handle: cusolverDnHandle_t,
20406            m: cusolver_int_t,
20407            n: cusolver_int_t,
20408            nrhs: cusolver_int_t,
20409            dA: *mut cuDoubleComplex,
20410            ldda: cusolver_int_t,
20411            dB: *mut cuDoubleComplex,
20412            lddb: cusolver_int_t,
20413            dX: *mut cuDoubleComplex,
20414            lddx: cusolver_int_t,
20415            dWorkspace: *mut ::core::ffi::c_void,
20416            lwork_bytes: usize,
20417            iter: *mut cusolver_int_t,
20418            d_info: *mut cusolver_int_t,
20419        ) -> cusolverStatus_t,
20420        pub cusolverDnZEgels_bufferSize: unsafe extern "C" fn(
20421            handle: cusolverDnHandle_t,
20422            m: cusolver_int_t,
20423            n: cusolver_int_t,
20424            nrhs: cusolver_int_t,
20425            dA: *mut cuDoubleComplex,
20426            ldda: cusolver_int_t,
20427            dB: *mut cuDoubleComplex,
20428            lddb: cusolver_int_t,
20429            dX: *mut cuDoubleComplex,
20430            lddx: cusolver_int_t,
20431            dWorkspace: *mut ::core::ffi::c_void,
20432            lwork_bytes: *mut usize,
20433        ) -> cusolverStatus_t,
20434        pub cusolverDnZEgesv: unsafe extern "C" fn(
20435            handle: cusolverDnHandle_t,
20436            n: cusolver_int_t,
20437            nrhs: cusolver_int_t,
20438            dA: *mut cuDoubleComplex,
20439            ldda: cusolver_int_t,
20440            dipiv: *mut cusolver_int_t,
20441            dB: *mut cuDoubleComplex,
20442            lddb: cusolver_int_t,
20443            dX: *mut cuDoubleComplex,
20444            lddx: cusolver_int_t,
20445            dWorkspace: *mut ::core::ffi::c_void,
20446            lwork_bytes: usize,
20447            iter: *mut cusolver_int_t,
20448            d_info: *mut cusolver_int_t,
20449        ) -> cusolverStatus_t,
20450        pub cusolverDnZEgesv_bufferSize: unsafe extern "C" fn(
20451            handle: cusolverDnHandle_t,
20452            n: cusolver_int_t,
20453            nrhs: cusolver_int_t,
20454            dA: *mut cuDoubleComplex,
20455            ldda: cusolver_int_t,
20456            dipiv: *mut cusolver_int_t,
20457            dB: *mut cuDoubleComplex,
20458            lddb: cusolver_int_t,
20459            dX: *mut cuDoubleComplex,
20460            lddx: cusolver_int_t,
20461            dWorkspace: *mut ::core::ffi::c_void,
20462            lwork_bytes: *mut usize,
20463        ) -> cusolverStatus_t,
20464        pub cusolverDnZKgels: unsafe extern "C" fn(
20465            handle: cusolverDnHandle_t,
20466            m: cusolver_int_t,
20467            n: cusolver_int_t,
20468            nrhs: cusolver_int_t,
20469            dA: *mut cuDoubleComplex,
20470            ldda: cusolver_int_t,
20471            dB: *mut cuDoubleComplex,
20472            lddb: cusolver_int_t,
20473            dX: *mut cuDoubleComplex,
20474            lddx: cusolver_int_t,
20475            dWorkspace: *mut ::core::ffi::c_void,
20476            lwork_bytes: usize,
20477            iter: *mut cusolver_int_t,
20478            d_info: *mut cusolver_int_t,
20479        ) -> cusolverStatus_t,
20480        pub cusolverDnZKgels_bufferSize: unsafe extern "C" fn(
20481            handle: cusolverDnHandle_t,
20482            m: cusolver_int_t,
20483            n: cusolver_int_t,
20484            nrhs: cusolver_int_t,
20485            dA: *mut cuDoubleComplex,
20486            ldda: cusolver_int_t,
20487            dB: *mut cuDoubleComplex,
20488            lddb: cusolver_int_t,
20489            dX: *mut cuDoubleComplex,
20490            lddx: cusolver_int_t,
20491            dWorkspace: *mut ::core::ffi::c_void,
20492            lwork_bytes: *mut usize,
20493        ) -> cusolverStatus_t,
20494        pub cusolverDnZKgesv: unsafe extern "C" fn(
20495            handle: cusolverDnHandle_t,
20496            n: cusolver_int_t,
20497            nrhs: cusolver_int_t,
20498            dA: *mut cuDoubleComplex,
20499            ldda: cusolver_int_t,
20500            dipiv: *mut cusolver_int_t,
20501            dB: *mut cuDoubleComplex,
20502            lddb: cusolver_int_t,
20503            dX: *mut cuDoubleComplex,
20504            lddx: cusolver_int_t,
20505            dWorkspace: *mut ::core::ffi::c_void,
20506            lwork_bytes: usize,
20507            iter: *mut cusolver_int_t,
20508            d_info: *mut cusolver_int_t,
20509        ) -> cusolverStatus_t,
20510        pub cusolverDnZKgesv_bufferSize: unsafe extern "C" fn(
20511            handle: cusolverDnHandle_t,
20512            n: cusolver_int_t,
20513            nrhs: cusolver_int_t,
20514            dA: *mut cuDoubleComplex,
20515            ldda: cusolver_int_t,
20516            dipiv: *mut cusolver_int_t,
20517            dB: *mut cuDoubleComplex,
20518            lddb: cusolver_int_t,
20519            dX: *mut cuDoubleComplex,
20520            lddx: cusolver_int_t,
20521            dWorkspace: *mut ::core::ffi::c_void,
20522            lwork_bytes: *mut usize,
20523        ) -> cusolverStatus_t,
20524        pub cusolverDnZYgels: unsafe extern "C" fn(
20525            handle: cusolverDnHandle_t,
20526            m: cusolver_int_t,
20527            n: cusolver_int_t,
20528            nrhs: cusolver_int_t,
20529            dA: *mut cuDoubleComplex,
20530            ldda: cusolver_int_t,
20531            dB: *mut cuDoubleComplex,
20532            lddb: cusolver_int_t,
20533            dX: *mut cuDoubleComplex,
20534            lddx: cusolver_int_t,
20535            dWorkspace: *mut ::core::ffi::c_void,
20536            lwork_bytes: usize,
20537            iter: *mut cusolver_int_t,
20538            d_info: *mut cusolver_int_t,
20539        ) -> cusolverStatus_t,
20540        pub cusolverDnZYgels_bufferSize: unsafe extern "C" fn(
20541            handle: cusolverDnHandle_t,
20542            m: cusolver_int_t,
20543            n: cusolver_int_t,
20544            nrhs: cusolver_int_t,
20545            dA: *mut cuDoubleComplex,
20546            ldda: cusolver_int_t,
20547            dB: *mut cuDoubleComplex,
20548            lddb: cusolver_int_t,
20549            dX: *mut cuDoubleComplex,
20550            lddx: cusolver_int_t,
20551            dWorkspace: *mut ::core::ffi::c_void,
20552            lwork_bytes: *mut usize,
20553        ) -> cusolverStatus_t,
20554        pub cusolverDnZYgesv: unsafe extern "C" fn(
20555            handle: cusolverDnHandle_t,
20556            n: cusolver_int_t,
20557            nrhs: cusolver_int_t,
20558            dA: *mut cuDoubleComplex,
20559            ldda: cusolver_int_t,
20560            dipiv: *mut cusolver_int_t,
20561            dB: *mut cuDoubleComplex,
20562            lddb: cusolver_int_t,
20563            dX: *mut cuDoubleComplex,
20564            lddx: cusolver_int_t,
20565            dWorkspace: *mut ::core::ffi::c_void,
20566            lwork_bytes: usize,
20567            iter: *mut cusolver_int_t,
20568            d_info: *mut cusolver_int_t,
20569        ) -> cusolverStatus_t,
20570        pub cusolverDnZYgesv_bufferSize: unsafe extern "C" fn(
20571            handle: cusolverDnHandle_t,
20572            n: cusolver_int_t,
20573            nrhs: cusolver_int_t,
20574            dA: *mut cuDoubleComplex,
20575            ldda: cusolver_int_t,
20576            dipiv: *mut cusolver_int_t,
20577            dB: *mut cuDoubleComplex,
20578            lddb: cusolver_int_t,
20579            dX: *mut cuDoubleComplex,
20580            lddx: cusolver_int_t,
20581            dWorkspace: *mut ::core::ffi::c_void,
20582            lwork_bytes: *mut usize,
20583        ) -> cusolverStatus_t,
20584        pub cusolverDnZZgels: unsafe extern "C" fn(
20585            handle: cusolverDnHandle_t,
20586            m: cusolver_int_t,
20587            n: cusolver_int_t,
20588            nrhs: cusolver_int_t,
20589            dA: *mut cuDoubleComplex,
20590            ldda: cusolver_int_t,
20591            dB: *mut cuDoubleComplex,
20592            lddb: cusolver_int_t,
20593            dX: *mut cuDoubleComplex,
20594            lddx: cusolver_int_t,
20595            dWorkspace: *mut ::core::ffi::c_void,
20596            lwork_bytes: usize,
20597            iter: *mut cusolver_int_t,
20598            d_info: *mut cusolver_int_t,
20599        ) -> cusolverStatus_t,
20600        pub cusolverDnZZgels_bufferSize: unsafe extern "C" fn(
20601            handle: cusolverDnHandle_t,
20602            m: cusolver_int_t,
20603            n: cusolver_int_t,
20604            nrhs: cusolver_int_t,
20605            dA: *mut cuDoubleComplex,
20606            ldda: cusolver_int_t,
20607            dB: *mut cuDoubleComplex,
20608            lddb: cusolver_int_t,
20609            dX: *mut cuDoubleComplex,
20610            lddx: cusolver_int_t,
20611            dWorkspace: *mut ::core::ffi::c_void,
20612            lwork_bytes: *mut usize,
20613        ) -> cusolverStatus_t,
20614        pub cusolverDnZZgesv: unsafe extern "C" fn(
20615            handle: cusolverDnHandle_t,
20616            n: cusolver_int_t,
20617            nrhs: cusolver_int_t,
20618            dA: *mut cuDoubleComplex,
20619            ldda: cusolver_int_t,
20620            dipiv: *mut cusolver_int_t,
20621            dB: *mut cuDoubleComplex,
20622            lddb: cusolver_int_t,
20623            dX: *mut cuDoubleComplex,
20624            lddx: cusolver_int_t,
20625            dWorkspace: *mut ::core::ffi::c_void,
20626            lwork_bytes: usize,
20627            iter: *mut cusolver_int_t,
20628            d_info: *mut cusolver_int_t,
20629        ) -> cusolverStatus_t,
20630        pub cusolverDnZZgesv_bufferSize: unsafe extern "C" fn(
20631            handle: cusolverDnHandle_t,
20632            n: cusolver_int_t,
20633            nrhs: cusolver_int_t,
20634            dA: *mut cuDoubleComplex,
20635            ldda: cusolver_int_t,
20636            dipiv: *mut cusolver_int_t,
20637            dB: *mut cuDoubleComplex,
20638            lddb: cusolver_int_t,
20639            dX: *mut cuDoubleComplex,
20640            lddx: cusolver_int_t,
20641            dWorkspace: *mut ::core::ffi::c_void,
20642            lwork_bytes: *mut usize,
20643        ) -> cusolverStatus_t,
20644        pub cusolverDnZgebrd: unsafe extern "C" fn(
20645            handle: cusolverDnHandle_t,
20646            m: ::core::ffi::c_int,
20647            n: ::core::ffi::c_int,
20648            A: *mut cuDoubleComplex,
20649            lda: ::core::ffi::c_int,
20650            D: *mut f64,
20651            E: *mut f64,
20652            TAUQ: *mut cuDoubleComplex,
20653            TAUP: *mut cuDoubleComplex,
20654            Work: *mut cuDoubleComplex,
20655            Lwork: ::core::ffi::c_int,
20656            devInfo: *mut ::core::ffi::c_int,
20657        ) -> cusolverStatus_t,
20658        pub cusolverDnZgebrd_bufferSize: unsafe extern "C" fn(
20659            handle: cusolverDnHandle_t,
20660            m: ::core::ffi::c_int,
20661            n: ::core::ffi::c_int,
20662            Lwork: *mut ::core::ffi::c_int,
20663        ) -> cusolverStatus_t,
20664        pub cusolverDnZgeqrf: unsafe extern "C" fn(
20665            handle: cusolverDnHandle_t,
20666            m: ::core::ffi::c_int,
20667            n: ::core::ffi::c_int,
20668            A: *mut cuDoubleComplex,
20669            lda: ::core::ffi::c_int,
20670            TAU: *mut cuDoubleComplex,
20671            Workspace: *mut cuDoubleComplex,
20672            Lwork: ::core::ffi::c_int,
20673            devInfo: *mut ::core::ffi::c_int,
20674        ) -> cusolverStatus_t,
20675        pub cusolverDnZgeqrf_bufferSize: unsafe extern "C" fn(
20676            handle: cusolverDnHandle_t,
20677            m: ::core::ffi::c_int,
20678            n: ::core::ffi::c_int,
20679            A: *mut cuDoubleComplex,
20680            lda: ::core::ffi::c_int,
20681            lwork: *mut ::core::ffi::c_int,
20682        ) -> cusolverStatus_t,
20683        pub cusolverDnZgesvd: unsafe extern "C" fn(
20684            handle: cusolverDnHandle_t,
20685            jobu: ::core::ffi::c_schar,
20686            jobvt: ::core::ffi::c_schar,
20687            m: ::core::ffi::c_int,
20688            n: ::core::ffi::c_int,
20689            A: *mut cuDoubleComplex,
20690            lda: ::core::ffi::c_int,
20691            S: *mut f64,
20692            U: *mut cuDoubleComplex,
20693            ldu: ::core::ffi::c_int,
20694            VT: *mut cuDoubleComplex,
20695            ldvt: ::core::ffi::c_int,
20696            work: *mut cuDoubleComplex,
20697            lwork: ::core::ffi::c_int,
20698            rwork: *mut f64,
20699            info: *mut ::core::ffi::c_int,
20700        ) -> cusolverStatus_t,
20701        pub cusolverDnZgesvd_bufferSize: unsafe extern "C" fn(
20702            handle: cusolverDnHandle_t,
20703            m: ::core::ffi::c_int,
20704            n: ::core::ffi::c_int,
20705            lwork: *mut ::core::ffi::c_int,
20706        ) -> cusolverStatus_t,
20707        pub cusolverDnZgesvdaStridedBatched: unsafe extern "C" fn(
20708            handle: cusolverDnHandle_t,
20709            jobz: cusolverEigMode_t,
20710            rank: ::core::ffi::c_int,
20711            m: ::core::ffi::c_int,
20712            n: ::core::ffi::c_int,
20713            d_A: *const cuDoubleComplex,
20714            lda: ::core::ffi::c_int,
20715            strideA: ::core::ffi::c_longlong,
20716            d_S: *mut f64,
20717            strideS: ::core::ffi::c_longlong,
20718            d_U: *mut cuDoubleComplex,
20719            ldu: ::core::ffi::c_int,
20720            strideU: ::core::ffi::c_longlong,
20721            d_V: *mut cuDoubleComplex,
20722            ldv: ::core::ffi::c_int,
20723            strideV: ::core::ffi::c_longlong,
20724            d_work: *mut cuDoubleComplex,
20725            lwork: ::core::ffi::c_int,
20726            d_info: *mut ::core::ffi::c_int,
20727            h_R_nrmF: *mut f64,
20728            batchSize: ::core::ffi::c_int,
20729        ) -> cusolverStatus_t,
20730        pub cusolverDnZgesvdaStridedBatched_bufferSize: unsafe extern "C" fn(
20731            handle: cusolverDnHandle_t,
20732            jobz: cusolverEigMode_t,
20733            rank: ::core::ffi::c_int,
20734            m: ::core::ffi::c_int,
20735            n: ::core::ffi::c_int,
20736            d_A: *const cuDoubleComplex,
20737            lda: ::core::ffi::c_int,
20738            strideA: ::core::ffi::c_longlong,
20739            d_S: *const f64,
20740            strideS: ::core::ffi::c_longlong,
20741            d_U: *const cuDoubleComplex,
20742            ldu: ::core::ffi::c_int,
20743            strideU: ::core::ffi::c_longlong,
20744            d_V: *const cuDoubleComplex,
20745            ldv: ::core::ffi::c_int,
20746            strideV: ::core::ffi::c_longlong,
20747            lwork: *mut ::core::ffi::c_int,
20748            batchSize: ::core::ffi::c_int,
20749        )
20750            -> cusolverStatus_t,
20751        pub cusolverDnZgesvdj: unsafe extern "C" fn(
20752            handle: cusolverDnHandle_t,
20753            jobz: cusolverEigMode_t,
20754            econ: ::core::ffi::c_int,
20755            m: ::core::ffi::c_int,
20756            n: ::core::ffi::c_int,
20757            A: *mut cuDoubleComplex,
20758            lda: ::core::ffi::c_int,
20759            S: *mut f64,
20760            U: *mut cuDoubleComplex,
20761            ldu: ::core::ffi::c_int,
20762            V: *mut cuDoubleComplex,
20763            ldv: ::core::ffi::c_int,
20764            work: *mut cuDoubleComplex,
20765            lwork: ::core::ffi::c_int,
20766            info: *mut ::core::ffi::c_int,
20767            params: gesvdjInfo_t,
20768        ) -> cusolverStatus_t,
20769        pub cusolverDnZgesvdjBatched: unsafe extern "C" fn(
20770            handle: cusolverDnHandle_t,
20771            jobz: cusolverEigMode_t,
20772            m: ::core::ffi::c_int,
20773            n: ::core::ffi::c_int,
20774            A: *mut cuDoubleComplex,
20775            lda: ::core::ffi::c_int,
20776            S: *mut f64,
20777            U: *mut cuDoubleComplex,
20778            ldu: ::core::ffi::c_int,
20779            V: *mut cuDoubleComplex,
20780            ldv: ::core::ffi::c_int,
20781            work: *mut cuDoubleComplex,
20782            lwork: ::core::ffi::c_int,
20783            info: *mut ::core::ffi::c_int,
20784            params: gesvdjInfo_t,
20785            batchSize: ::core::ffi::c_int,
20786        ) -> cusolverStatus_t,
20787        pub cusolverDnZgesvdjBatched_bufferSize: unsafe extern "C" fn(
20788            handle: cusolverDnHandle_t,
20789            jobz: cusolverEigMode_t,
20790            m: ::core::ffi::c_int,
20791            n: ::core::ffi::c_int,
20792            A: *const cuDoubleComplex,
20793            lda: ::core::ffi::c_int,
20794            S: *const f64,
20795            U: *const cuDoubleComplex,
20796            ldu: ::core::ffi::c_int,
20797            V: *const cuDoubleComplex,
20798            ldv: ::core::ffi::c_int,
20799            lwork: *mut ::core::ffi::c_int,
20800            params: gesvdjInfo_t,
20801            batchSize: ::core::ffi::c_int,
20802        ) -> cusolverStatus_t,
20803        pub cusolverDnZgesvdj_bufferSize: unsafe extern "C" fn(
20804            handle: cusolverDnHandle_t,
20805            jobz: cusolverEigMode_t,
20806            econ: ::core::ffi::c_int,
20807            m: ::core::ffi::c_int,
20808            n: ::core::ffi::c_int,
20809            A: *const cuDoubleComplex,
20810            lda: ::core::ffi::c_int,
20811            S: *const f64,
20812            U: *const cuDoubleComplex,
20813            ldu: ::core::ffi::c_int,
20814            V: *const cuDoubleComplex,
20815            ldv: ::core::ffi::c_int,
20816            lwork: *mut ::core::ffi::c_int,
20817            params: gesvdjInfo_t,
20818        ) -> cusolverStatus_t,
20819        pub cusolverDnZgetrf: unsafe extern "C" fn(
20820            handle: cusolverDnHandle_t,
20821            m: ::core::ffi::c_int,
20822            n: ::core::ffi::c_int,
20823            A: *mut cuDoubleComplex,
20824            lda: ::core::ffi::c_int,
20825            Workspace: *mut cuDoubleComplex,
20826            devIpiv: *mut ::core::ffi::c_int,
20827            devInfo: *mut ::core::ffi::c_int,
20828        ) -> cusolverStatus_t,
20829        pub cusolverDnZgetrf_bufferSize: unsafe extern "C" fn(
20830            handle: cusolverDnHandle_t,
20831            m: ::core::ffi::c_int,
20832            n: ::core::ffi::c_int,
20833            A: *mut cuDoubleComplex,
20834            lda: ::core::ffi::c_int,
20835            Lwork: *mut ::core::ffi::c_int,
20836        ) -> cusolverStatus_t,
20837        pub cusolverDnZgetrs: unsafe extern "C" fn(
20838            handle: cusolverDnHandle_t,
20839            trans: cublasOperation_t,
20840            n: ::core::ffi::c_int,
20841            nrhs: ::core::ffi::c_int,
20842            A: *const cuDoubleComplex,
20843            lda: ::core::ffi::c_int,
20844            devIpiv: *const ::core::ffi::c_int,
20845            B: *mut cuDoubleComplex,
20846            ldb: ::core::ffi::c_int,
20847            devInfo: *mut ::core::ffi::c_int,
20848        ) -> cusolverStatus_t,
20849        pub cusolverDnZheevd: unsafe extern "C" fn(
20850            handle: cusolverDnHandle_t,
20851            jobz: cusolverEigMode_t,
20852            uplo: cublasFillMode_t,
20853            n: ::core::ffi::c_int,
20854            A: *mut cuDoubleComplex,
20855            lda: ::core::ffi::c_int,
20856            W: *mut f64,
20857            work: *mut cuDoubleComplex,
20858            lwork: ::core::ffi::c_int,
20859            info: *mut ::core::ffi::c_int,
20860        ) -> cusolverStatus_t,
20861        pub cusolverDnZheevd_bufferSize: unsafe extern "C" fn(
20862            handle: cusolverDnHandle_t,
20863            jobz: cusolverEigMode_t,
20864            uplo: cublasFillMode_t,
20865            n: ::core::ffi::c_int,
20866            A: *const cuDoubleComplex,
20867            lda: ::core::ffi::c_int,
20868            W: *const f64,
20869            lwork: *mut ::core::ffi::c_int,
20870        ) -> cusolverStatus_t,
20871        pub cusolverDnZheevdx: unsafe extern "C" fn(
20872            handle: cusolverDnHandle_t,
20873            jobz: cusolverEigMode_t,
20874            range: cusolverEigRange_t,
20875            uplo: cublasFillMode_t,
20876            n: ::core::ffi::c_int,
20877            A: *mut cuDoubleComplex,
20878            lda: ::core::ffi::c_int,
20879            vl: f64,
20880            vu: f64,
20881            il: ::core::ffi::c_int,
20882            iu: ::core::ffi::c_int,
20883            meig: *mut ::core::ffi::c_int,
20884            W: *mut f64,
20885            work: *mut cuDoubleComplex,
20886            lwork: ::core::ffi::c_int,
20887            info: *mut ::core::ffi::c_int,
20888        ) -> cusolverStatus_t,
20889        pub cusolverDnZheevdx_bufferSize: unsafe extern "C" fn(
20890            handle: cusolverDnHandle_t,
20891            jobz: cusolverEigMode_t,
20892            range: cusolverEigRange_t,
20893            uplo: cublasFillMode_t,
20894            n: ::core::ffi::c_int,
20895            A: *const cuDoubleComplex,
20896            lda: ::core::ffi::c_int,
20897            vl: f64,
20898            vu: f64,
20899            il: ::core::ffi::c_int,
20900            iu: ::core::ffi::c_int,
20901            meig: *mut ::core::ffi::c_int,
20902            W: *const f64,
20903            lwork: *mut ::core::ffi::c_int,
20904        ) -> cusolverStatus_t,
20905        pub cusolverDnZheevj: unsafe extern "C" fn(
20906            handle: cusolverDnHandle_t,
20907            jobz: cusolverEigMode_t,
20908            uplo: cublasFillMode_t,
20909            n: ::core::ffi::c_int,
20910            A: *mut cuDoubleComplex,
20911            lda: ::core::ffi::c_int,
20912            W: *mut f64,
20913            work: *mut cuDoubleComplex,
20914            lwork: ::core::ffi::c_int,
20915            info: *mut ::core::ffi::c_int,
20916            params: syevjInfo_t,
20917        ) -> cusolverStatus_t,
20918        pub cusolverDnZheevjBatched: unsafe extern "C" fn(
20919            handle: cusolverDnHandle_t,
20920            jobz: cusolverEigMode_t,
20921            uplo: cublasFillMode_t,
20922            n: ::core::ffi::c_int,
20923            A: *mut cuDoubleComplex,
20924            lda: ::core::ffi::c_int,
20925            W: *mut f64,
20926            work: *mut cuDoubleComplex,
20927            lwork: ::core::ffi::c_int,
20928            info: *mut ::core::ffi::c_int,
20929            params: syevjInfo_t,
20930            batchSize: ::core::ffi::c_int,
20931        ) -> cusolverStatus_t,
20932        pub cusolverDnZheevjBatched_bufferSize: unsafe extern "C" fn(
20933            handle: cusolverDnHandle_t,
20934            jobz: cusolverEigMode_t,
20935            uplo: cublasFillMode_t,
20936            n: ::core::ffi::c_int,
20937            A: *const cuDoubleComplex,
20938            lda: ::core::ffi::c_int,
20939            W: *const f64,
20940            lwork: *mut ::core::ffi::c_int,
20941            params: syevjInfo_t,
20942            batchSize: ::core::ffi::c_int,
20943        ) -> cusolverStatus_t,
20944        pub cusolverDnZheevj_bufferSize: unsafe extern "C" fn(
20945            handle: cusolverDnHandle_t,
20946            jobz: cusolverEigMode_t,
20947            uplo: cublasFillMode_t,
20948            n: ::core::ffi::c_int,
20949            A: *const cuDoubleComplex,
20950            lda: ::core::ffi::c_int,
20951            W: *const f64,
20952            lwork: *mut ::core::ffi::c_int,
20953            params: syevjInfo_t,
20954        ) -> cusolverStatus_t,
20955        pub cusolverDnZhegvd: unsafe extern "C" fn(
20956            handle: cusolverDnHandle_t,
20957            itype: cusolverEigType_t,
20958            jobz: cusolverEigMode_t,
20959            uplo: cublasFillMode_t,
20960            n: ::core::ffi::c_int,
20961            A: *mut cuDoubleComplex,
20962            lda: ::core::ffi::c_int,
20963            B: *mut cuDoubleComplex,
20964            ldb: ::core::ffi::c_int,
20965            W: *mut f64,
20966            work: *mut cuDoubleComplex,
20967            lwork: ::core::ffi::c_int,
20968            info: *mut ::core::ffi::c_int,
20969        ) -> cusolverStatus_t,
20970        pub cusolverDnZhegvd_bufferSize: unsafe extern "C" fn(
20971            handle: cusolverDnHandle_t,
20972            itype: cusolverEigType_t,
20973            jobz: cusolverEigMode_t,
20974            uplo: cublasFillMode_t,
20975            n: ::core::ffi::c_int,
20976            A: *const cuDoubleComplex,
20977            lda: ::core::ffi::c_int,
20978            B: *const cuDoubleComplex,
20979            ldb: ::core::ffi::c_int,
20980            W: *const f64,
20981            lwork: *mut ::core::ffi::c_int,
20982        ) -> cusolverStatus_t,
20983        pub cusolverDnZhegvdx: unsafe extern "C" fn(
20984            handle: cusolverDnHandle_t,
20985            itype: cusolverEigType_t,
20986            jobz: cusolverEigMode_t,
20987            range: cusolverEigRange_t,
20988            uplo: cublasFillMode_t,
20989            n: ::core::ffi::c_int,
20990            A: *mut cuDoubleComplex,
20991            lda: ::core::ffi::c_int,
20992            B: *mut cuDoubleComplex,
20993            ldb: ::core::ffi::c_int,
20994            vl: f64,
20995            vu: f64,
20996            il: ::core::ffi::c_int,
20997            iu: ::core::ffi::c_int,
20998            meig: *mut ::core::ffi::c_int,
20999            W: *mut f64,
21000            work: *mut cuDoubleComplex,
21001            lwork: ::core::ffi::c_int,
21002            info: *mut ::core::ffi::c_int,
21003        ) -> cusolverStatus_t,
21004        pub cusolverDnZhegvdx_bufferSize: unsafe extern "C" fn(
21005            handle: cusolverDnHandle_t,
21006            itype: cusolverEigType_t,
21007            jobz: cusolverEigMode_t,
21008            range: cusolverEigRange_t,
21009            uplo: cublasFillMode_t,
21010            n: ::core::ffi::c_int,
21011            A: *const cuDoubleComplex,
21012            lda: ::core::ffi::c_int,
21013            B: *const cuDoubleComplex,
21014            ldb: ::core::ffi::c_int,
21015            vl: f64,
21016            vu: f64,
21017            il: ::core::ffi::c_int,
21018            iu: ::core::ffi::c_int,
21019            meig: *mut ::core::ffi::c_int,
21020            W: *const f64,
21021            lwork: *mut ::core::ffi::c_int,
21022        ) -> cusolverStatus_t,
21023        pub cusolverDnZhegvj: unsafe extern "C" fn(
21024            handle: cusolverDnHandle_t,
21025            itype: cusolverEigType_t,
21026            jobz: cusolverEigMode_t,
21027            uplo: cublasFillMode_t,
21028            n: ::core::ffi::c_int,
21029            A: *mut cuDoubleComplex,
21030            lda: ::core::ffi::c_int,
21031            B: *mut cuDoubleComplex,
21032            ldb: ::core::ffi::c_int,
21033            W: *mut f64,
21034            work: *mut cuDoubleComplex,
21035            lwork: ::core::ffi::c_int,
21036            info: *mut ::core::ffi::c_int,
21037            params: syevjInfo_t,
21038        ) -> cusolverStatus_t,
21039        pub cusolverDnZhegvj_bufferSize: unsafe extern "C" fn(
21040            handle: cusolverDnHandle_t,
21041            itype: cusolverEigType_t,
21042            jobz: cusolverEigMode_t,
21043            uplo: cublasFillMode_t,
21044            n: ::core::ffi::c_int,
21045            A: *const cuDoubleComplex,
21046            lda: ::core::ffi::c_int,
21047            B: *const cuDoubleComplex,
21048            ldb: ::core::ffi::c_int,
21049            W: *const f64,
21050            lwork: *mut ::core::ffi::c_int,
21051            params: syevjInfo_t,
21052        ) -> cusolverStatus_t,
21053        pub cusolverDnZhetrd: unsafe extern "C" fn(
21054            handle: cusolverDnHandle_t,
21055            uplo: cublasFillMode_t,
21056            n: ::core::ffi::c_int,
21057            A: *mut cuDoubleComplex,
21058            lda: ::core::ffi::c_int,
21059            d: *mut f64,
21060            e: *mut f64,
21061            tau: *mut cuDoubleComplex,
21062            work: *mut cuDoubleComplex,
21063            lwork: ::core::ffi::c_int,
21064            info: *mut ::core::ffi::c_int,
21065        ) -> cusolverStatus_t,
21066        pub cusolverDnZhetrd_bufferSize: unsafe extern "C" fn(
21067            handle: cusolverDnHandle_t,
21068            uplo: cublasFillMode_t,
21069            n: ::core::ffi::c_int,
21070            A: *const cuDoubleComplex,
21071            lda: ::core::ffi::c_int,
21072            d: *const f64,
21073            e: *const f64,
21074            tau: *const cuDoubleComplex,
21075            lwork: *mut ::core::ffi::c_int,
21076        ) -> cusolverStatus_t,
21077        pub cusolverDnZlaswp: unsafe extern "C" fn(
21078            handle: cusolverDnHandle_t,
21079            n: ::core::ffi::c_int,
21080            A: *mut cuDoubleComplex,
21081            lda: ::core::ffi::c_int,
21082            k1: ::core::ffi::c_int,
21083            k2: ::core::ffi::c_int,
21084            devIpiv: *const ::core::ffi::c_int,
21085            incx: ::core::ffi::c_int,
21086        ) -> cusolverStatus_t,
21087        pub cusolverDnZlauum: unsafe extern "C" fn(
21088            handle: cusolverDnHandle_t,
21089            uplo: cublasFillMode_t,
21090            n: ::core::ffi::c_int,
21091            A: *mut cuDoubleComplex,
21092            lda: ::core::ffi::c_int,
21093            work: *mut cuDoubleComplex,
21094            lwork: ::core::ffi::c_int,
21095            devInfo: *mut ::core::ffi::c_int,
21096        ) -> cusolverStatus_t,
21097        pub cusolverDnZlauum_bufferSize: unsafe extern "C" fn(
21098            handle: cusolverDnHandle_t,
21099            uplo: cublasFillMode_t,
21100            n: ::core::ffi::c_int,
21101            A: *mut cuDoubleComplex,
21102            lda: ::core::ffi::c_int,
21103            lwork: *mut ::core::ffi::c_int,
21104        ) -> cusolverStatus_t,
21105        pub cusolverDnZpotrf: unsafe extern "C" fn(
21106            handle: cusolverDnHandle_t,
21107            uplo: cublasFillMode_t,
21108            n: ::core::ffi::c_int,
21109            A: *mut cuDoubleComplex,
21110            lda: ::core::ffi::c_int,
21111            Workspace: *mut cuDoubleComplex,
21112            Lwork: ::core::ffi::c_int,
21113            devInfo: *mut ::core::ffi::c_int,
21114        ) -> cusolverStatus_t,
21115        pub cusolverDnZpotrfBatched: unsafe extern "C" fn(
21116            handle: cusolverDnHandle_t,
21117            uplo: cublasFillMode_t,
21118            n: ::core::ffi::c_int,
21119            Aarray: *mut *mut cuDoubleComplex,
21120            lda: ::core::ffi::c_int,
21121            infoArray: *mut ::core::ffi::c_int,
21122            batchSize: ::core::ffi::c_int,
21123        ) -> cusolverStatus_t,
21124        pub cusolverDnZpotrf_bufferSize: unsafe extern "C" fn(
21125            handle: cusolverDnHandle_t,
21126            uplo: cublasFillMode_t,
21127            n: ::core::ffi::c_int,
21128            A: *mut cuDoubleComplex,
21129            lda: ::core::ffi::c_int,
21130            Lwork: *mut ::core::ffi::c_int,
21131        ) -> cusolverStatus_t,
21132        pub cusolverDnZpotri: unsafe extern "C" fn(
21133            handle: cusolverDnHandle_t,
21134            uplo: cublasFillMode_t,
21135            n: ::core::ffi::c_int,
21136            A: *mut cuDoubleComplex,
21137            lda: ::core::ffi::c_int,
21138            work: *mut cuDoubleComplex,
21139            lwork: ::core::ffi::c_int,
21140            devInfo: *mut ::core::ffi::c_int,
21141        ) -> cusolverStatus_t,
21142        pub cusolverDnZpotri_bufferSize: unsafe extern "C" fn(
21143            handle: cusolverDnHandle_t,
21144            uplo: cublasFillMode_t,
21145            n: ::core::ffi::c_int,
21146            A: *mut cuDoubleComplex,
21147            lda: ::core::ffi::c_int,
21148            lwork: *mut ::core::ffi::c_int,
21149        ) -> cusolverStatus_t,
21150        pub cusolverDnZpotrs: unsafe extern "C" fn(
21151            handle: cusolverDnHandle_t,
21152            uplo: cublasFillMode_t,
21153            n: ::core::ffi::c_int,
21154            nrhs: ::core::ffi::c_int,
21155            A: *const cuDoubleComplex,
21156            lda: ::core::ffi::c_int,
21157            B: *mut cuDoubleComplex,
21158            ldb: ::core::ffi::c_int,
21159            devInfo: *mut ::core::ffi::c_int,
21160        ) -> cusolverStatus_t,
21161        pub cusolverDnZpotrsBatched: unsafe extern "C" fn(
21162            handle: cusolverDnHandle_t,
21163            uplo: cublasFillMode_t,
21164            n: ::core::ffi::c_int,
21165            nrhs: ::core::ffi::c_int,
21166            A: *mut *mut cuDoubleComplex,
21167            lda: ::core::ffi::c_int,
21168            B: *mut *mut cuDoubleComplex,
21169            ldb: ::core::ffi::c_int,
21170            d_info: *mut ::core::ffi::c_int,
21171            batchSize: ::core::ffi::c_int,
21172        ) -> cusolverStatus_t,
21173        pub cusolverDnZsytrf: unsafe extern "C" fn(
21174            handle: cusolverDnHandle_t,
21175            uplo: cublasFillMode_t,
21176            n: ::core::ffi::c_int,
21177            A: *mut cuDoubleComplex,
21178            lda: ::core::ffi::c_int,
21179            ipiv: *mut ::core::ffi::c_int,
21180            work: *mut cuDoubleComplex,
21181            lwork: ::core::ffi::c_int,
21182            info: *mut ::core::ffi::c_int,
21183        ) -> cusolverStatus_t,
21184        pub cusolverDnZsytrf_bufferSize: unsafe extern "C" fn(
21185            handle: cusolverDnHandle_t,
21186            n: ::core::ffi::c_int,
21187            A: *mut cuDoubleComplex,
21188            lda: ::core::ffi::c_int,
21189            lwork: *mut ::core::ffi::c_int,
21190        ) -> cusolverStatus_t,
21191        pub cusolverDnZsytri: unsafe extern "C" fn(
21192            handle: cusolverDnHandle_t,
21193            uplo: cublasFillMode_t,
21194            n: ::core::ffi::c_int,
21195            A: *mut cuDoubleComplex,
21196            lda: ::core::ffi::c_int,
21197            ipiv: *const ::core::ffi::c_int,
21198            work: *mut cuDoubleComplex,
21199            lwork: ::core::ffi::c_int,
21200            info: *mut ::core::ffi::c_int,
21201        ) -> cusolverStatus_t,
21202        pub cusolverDnZsytri_bufferSize: unsafe extern "C" fn(
21203            handle: cusolverDnHandle_t,
21204            uplo: cublasFillMode_t,
21205            n: ::core::ffi::c_int,
21206            A: *mut cuDoubleComplex,
21207            lda: ::core::ffi::c_int,
21208            ipiv: *const ::core::ffi::c_int,
21209            lwork: *mut ::core::ffi::c_int,
21210        ) -> cusolverStatus_t,
21211        pub cusolverDnZungbr: unsafe extern "C" fn(
21212            handle: cusolverDnHandle_t,
21213            side: cublasSideMode_t,
21214            m: ::core::ffi::c_int,
21215            n: ::core::ffi::c_int,
21216            k: ::core::ffi::c_int,
21217            A: *mut cuDoubleComplex,
21218            lda: ::core::ffi::c_int,
21219            tau: *const cuDoubleComplex,
21220            work: *mut cuDoubleComplex,
21221            lwork: ::core::ffi::c_int,
21222            info: *mut ::core::ffi::c_int,
21223        ) -> cusolverStatus_t,
21224        pub cusolverDnZungbr_bufferSize: unsafe extern "C" fn(
21225            handle: cusolverDnHandle_t,
21226            side: cublasSideMode_t,
21227            m: ::core::ffi::c_int,
21228            n: ::core::ffi::c_int,
21229            k: ::core::ffi::c_int,
21230            A: *const cuDoubleComplex,
21231            lda: ::core::ffi::c_int,
21232            tau: *const cuDoubleComplex,
21233            lwork: *mut ::core::ffi::c_int,
21234        ) -> cusolverStatus_t,
21235        pub cusolverDnZungqr: unsafe extern "C" fn(
21236            handle: cusolverDnHandle_t,
21237            m: ::core::ffi::c_int,
21238            n: ::core::ffi::c_int,
21239            k: ::core::ffi::c_int,
21240            A: *mut cuDoubleComplex,
21241            lda: ::core::ffi::c_int,
21242            tau: *const cuDoubleComplex,
21243            work: *mut cuDoubleComplex,
21244            lwork: ::core::ffi::c_int,
21245            info: *mut ::core::ffi::c_int,
21246        ) -> cusolverStatus_t,
21247        pub cusolverDnZungqr_bufferSize: unsafe extern "C" fn(
21248            handle: cusolverDnHandle_t,
21249            m: ::core::ffi::c_int,
21250            n: ::core::ffi::c_int,
21251            k: ::core::ffi::c_int,
21252            A: *const cuDoubleComplex,
21253            lda: ::core::ffi::c_int,
21254            tau: *const cuDoubleComplex,
21255            lwork: *mut ::core::ffi::c_int,
21256        ) -> cusolverStatus_t,
21257        pub cusolverDnZungtr: unsafe extern "C" fn(
21258            handle: cusolverDnHandle_t,
21259            uplo: cublasFillMode_t,
21260            n: ::core::ffi::c_int,
21261            A: *mut cuDoubleComplex,
21262            lda: ::core::ffi::c_int,
21263            tau: *const cuDoubleComplex,
21264            work: *mut cuDoubleComplex,
21265            lwork: ::core::ffi::c_int,
21266            info: *mut ::core::ffi::c_int,
21267        ) -> cusolverStatus_t,
21268        pub cusolverDnZungtr_bufferSize: unsafe extern "C" fn(
21269            handle: cusolverDnHandle_t,
21270            uplo: cublasFillMode_t,
21271            n: ::core::ffi::c_int,
21272            A: *const cuDoubleComplex,
21273            lda: ::core::ffi::c_int,
21274            tau: *const cuDoubleComplex,
21275            lwork: *mut ::core::ffi::c_int,
21276        ) -> cusolverStatus_t,
21277        pub cusolverDnZunmqr: unsafe extern "C" fn(
21278            handle: cusolverDnHandle_t,
21279            side: cublasSideMode_t,
21280            trans: cublasOperation_t,
21281            m: ::core::ffi::c_int,
21282            n: ::core::ffi::c_int,
21283            k: ::core::ffi::c_int,
21284            A: *const cuDoubleComplex,
21285            lda: ::core::ffi::c_int,
21286            tau: *const cuDoubleComplex,
21287            C: *mut cuDoubleComplex,
21288            ldc: ::core::ffi::c_int,
21289            work: *mut cuDoubleComplex,
21290            lwork: ::core::ffi::c_int,
21291            devInfo: *mut ::core::ffi::c_int,
21292        ) -> cusolverStatus_t,
21293        pub cusolverDnZunmqr_bufferSize: unsafe extern "C" fn(
21294            handle: cusolverDnHandle_t,
21295            side: cublasSideMode_t,
21296            trans: cublasOperation_t,
21297            m: ::core::ffi::c_int,
21298            n: ::core::ffi::c_int,
21299            k: ::core::ffi::c_int,
21300            A: *const cuDoubleComplex,
21301            lda: ::core::ffi::c_int,
21302            tau: *const cuDoubleComplex,
21303            C: *const cuDoubleComplex,
21304            ldc: ::core::ffi::c_int,
21305            lwork: *mut ::core::ffi::c_int,
21306        ) -> cusolverStatus_t,
21307        pub cusolverDnZunmtr: unsafe extern "C" fn(
21308            handle: cusolverDnHandle_t,
21309            side: cublasSideMode_t,
21310            uplo: cublasFillMode_t,
21311            trans: cublasOperation_t,
21312            m: ::core::ffi::c_int,
21313            n: ::core::ffi::c_int,
21314            A: *mut cuDoubleComplex,
21315            lda: ::core::ffi::c_int,
21316            tau: *mut cuDoubleComplex,
21317            C: *mut cuDoubleComplex,
21318            ldc: ::core::ffi::c_int,
21319            work: *mut cuDoubleComplex,
21320            lwork: ::core::ffi::c_int,
21321            info: *mut ::core::ffi::c_int,
21322        ) -> cusolverStatus_t,
21323        pub cusolverDnZunmtr_bufferSize: unsafe extern "C" fn(
21324            handle: cusolverDnHandle_t,
21325            side: cublasSideMode_t,
21326            uplo: cublasFillMode_t,
21327            trans: cublasOperation_t,
21328            m: ::core::ffi::c_int,
21329            n: ::core::ffi::c_int,
21330            A: *const cuDoubleComplex,
21331            lda: ::core::ffi::c_int,
21332            tau: *const cuDoubleComplex,
21333            C: *const cuDoubleComplex,
21334            ldc: ::core::ffi::c_int,
21335            lwork: *mut ::core::ffi::c_int,
21336        ) -> cusolverStatus_t,
21337        pub cusolverGetProperty: unsafe extern "C" fn(
21338            type_: libraryPropertyType,
21339            value: *mut ::core::ffi::c_int,
21340        ) -> cusolverStatus_t,
21341        pub cusolverGetVersion:
21342            unsafe extern "C" fn(version: *mut ::core::ffi::c_int) -> cusolverStatus_t,
21343        pub cusolverRfAccessBundledFactorsDevice: unsafe extern "C" fn(
21344            handle: cusolverRfHandle_t,
21345            nnzM: *mut ::core::ffi::c_int,
21346            Mp: *mut *mut ::core::ffi::c_int,
21347            Mi: *mut *mut ::core::ffi::c_int,
21348            Mx: *mut *mut f64,
21349        ) -> cusolverStatus_t,
21350        pub cusolverRfAnalyze: unsafe extern "C" fn(handle: cusolverRfHandle_t) -> cusolverStatus_t,
21351        pub cusolverRfBatchAnalyze:
21352            unsafe extern "C" fn(handle: cusolverRfHandle_t) -> cusolverStatus_t,
21353        pub cusolverRfBatchRefactor:
21354            unsafe extern "C" fn(handle: cusolverRfHandle_t) -> cusolverStatus_t,
21355        pub cusolverRfBatchResetValues: unsafe extern "C" fn(
21356            batchSize: ::core::ffi::c_int,
21357            n: ::core::ffi::c_int,
21358            nnzA: ::core::ffi::c_int,
21359            csrRowPtrA: *mut ::core::ffi::c_int,
21360            csrColIndA: *mut ::core::ffi::c_int,
21361            csrValA_array: *mut *mut f64,
21362            P: *mut ::core::ffi::c_int,
21363            Q: *mut ::core::ffi::c_int,
21364            handle: cusolverRfHandle_t,
21365        ) -> cusolverStatus_t,
21366        pub cusolverRfBatchSetupHost: unsafe extern "C" fn(
21367            batchSize: ::core::ffi::c_int,
21368            n: ::core::ffi::c_int,
21369            nnzA: ::core::ffi::c_int,
21370            h_csrRowPtrA: *mut ::core::ffi::c_int,
21371            h_csrColIndA: *mut ::core::ffi::c_int,
21372            h_csrValA_array: *mut *mut f64,
21373            nnzL: ::core::ffi::c_int,
21374            h_csrRowPtrL: *mut ::core::ffi::c_int,
21375            h_csrColIndL: *mut ::core::ffi::c_int,
21376            h_csrValL: *mut f64,
21377            nnzU: ::core::ffi::c_int,
21378            h_csrRowPtrU: *mut ::core::ffi::c_int,
21379            h_csrColIndU: *mut ::core::ffi::c_int,
21380            h_csrValU: *mut f64,
21381            h_P: *mut ::core::ffi::c_int,
21382            h_Q: *mut ::core::ffi::c_int,
21383            handle: cusolverRfHandle_t,
21384        ) -> cusolverStatus_t,
21385        pub cusolverRfBatchSolve: unsafe extern "C" fn(
21386            handle: cusolverRfHandle_t,
21387            P: *mut ::core::ffi::c_int,
21388            Q: *mut ::core::ffi::c_int,
21389            nrhs: ::core::ffi::c_int,
21390            Temp: *mut f64,
21391            ldt: ::core::ffi::c_int,
21392            XF_array: *mut *mut f64,
21393            ldxf: ::core::ffi::c_int,
21394        ) -> cusolverStatus_t,
21395        pub cusolverRfBatchZeroPivot: unsafe extern "C" fn(
21396            handle: cusolverRfHandle_t,
21397            position: *mut ::core::ffi::c_int,
21398        ) -> cusolverStatus_t,
21399        pub cusolverRfCreate:
21400            unsafe extern "C" fn(handle: *mut cusolverRfHandle_t) -> cusolverStatus_t,
21401        pub cusolverRfDestroy: unsafe extern "C" fn(handle: cusolverRfHandle_t) -> cusolverStatus_t,
21402        pub cusolverRfExtractBundledFactorsHost: unsafe extern "C" fn(
21403            handle: cusolverRfHandle_t,
21404            h_nnzM: *mut ::core::ffi::c_int,
21405            h_Mp: *mut *mut ::core::ffi::c_int,
21406            h_Mi: *mut *mut ::core::ffi::c_int,
21407            h_Mx: *mut *mut f64,
21408        ) -> cusolverStatus_t,
21409        pub cusolverRfExtractSplitFactorsHost: unsafe extern "C" fn(
21410            handle: cusolverRfHandle_t,
21411            h_nnzL: *mut ::core::ffi::c_int,
21412            h_csrRowPtrL: *mut *mut ::core::ffi::c_int,
21413            h_csrColIndL: *mut *mut ::core::ffi::c_int,
21414            h_csrValL: *mut *mut f64,
21415            h_nnzU: *mut ::core::ffi::c_int,
21416            h_csrRowPtrU: *mut *mut ::core::ffi::c_int,
21417            h_csrColIndU: *mut *mut ::core::ffi::c_int,
21418            h_csrValU: *mut *mut f64,
21419        ) -> cusolverStatus_t,
21420        pub cusolverRfGetAlgs: unsafe extern "C" fn(
21421            handle: cusolverRfHandle_t,
21422            factAlg: *mut cusolverRfFactorization_t,
21423            solveAlg: *mut cusolverRfTriangularSolve_t,
21424        ) -> cusolverStatus_t,
21425        pub cusolverRfGetMatrixFormat: unsafe extern "C" fn(
21426            handle: cusolverRfHandle_t,
21427            format: *mut cusolverRfMatrixFormat_t,
21428            diag: *mut cusolverRfUnitDiagonal_t,
21429        ) -> cusolverStatus_t,
21430        pub cusolverRfGetNumericBoostReport: unsafe extern "C" fn(
21431            handle: cusolverRfHandle_t,
21432            report: *mut cusolverRfNumericBoostReport_t,
21433        ) -> cusolverStatus_t,
21434        pub cusolverRfGetNumericProperties: unsafe extern "C" fn(
21435            handle: cusolverRfHandle_t,
21436            zero: *mut f64,
21437            boost: *mut f64,
21438        ) -> cusolverStatus_t,
21439        pub cusolverRfGetResetValuesFastMode: unsafe extern "C" fn(
21440            handle: cusolverRfHandle_t,
21441            fastMode: *mut cusolverRfResetValuesFastMode_t,
21442        ) -> cusolverStatus_t,
21443        pub cusolverRfRefactor:
21444            unsafe extern "C" fn(handle: cusolverRfHandle_t) -> cusolverStatus_t,
21445        pub cusolverRfResetValues: unsafe extern "C" fn(
21446            n: ::core::ffi::c_int,
21447            nnzA: ::core::ffi::c_int,
21448            csrRowPtrA: *mut ::core::ffi::c_int,
21449            csrColIndA: *mut ::core::ffi::c_int,
21450            csrValA: *mut f64,
21451            P: *mut ::core::ffi::c_int,
21452            Q: *mut ::core::ffi::c_int,
21453            handle: cusolverRfHandle_t,
21454        ) -> cusolverStatus_t,
21455        pub cusolverRfSetAlgs: unsafe extern "C" fn(
21456            handle: cusolverRfHandle_t,
21457            factAlg: cusolverRfFactorization_t,
21458            solveAlg: cusolverRfTriangularSolve_t,
21459        ) -> cusolverStatus_t,
21460        pub cusolverRfSetMatrixFormat: unsafe extern "C" fn(
21461            handle: cusolverRfHandle_t,
21462            format: cusolverRfMatrixFormat_t,
21463            diag: cusolverRfUnitDiagonal_t,
21464        ) -> cusolverStatus_t,
21465        pub cusolverRfSetNumericProperties: unsafe extern "C" fn(
21466            handle: cusolverRfHandle_t,
21467            zero: f64,
21468            boost: f64,
21469        ) -> cusolverStatus_t,
21470        pub cusolverRfSetResetValuesFastMode: unsafe extern "C" fn(
21471            handle: cusolverRfHandle_t,
21472            fastMode: cusolverRfResetValuesFastMode_t,
21473        ) -> cusolverStatus_t,
21474        pub cusolverRfSetupDevice: unsafe extern "C" fn(
21475            n: ::core::ffi::c_int,
21476            nnzA: ::core::ffi::c_int,
21477            csrRowPtrA: *mut ::core::ffi::c_int,
21478            csrColIndA: *mut ::core::ffi::c_int,
21479            csrValA: *mut f64,
21480            nnzL: ::core::ffi::c_int,
21481            csrRowPtrL: *mut ::core::ffi::c_int,
21482            csrColIndL: *mut ::core::ffi::c_int,
21483            csrValL: *mut f64,
21484            nnzU: ::core::ffi::c_int,
21485            csrRowPtrU: *mut ::core::ffi::c_int,
21486            csrColIndU: *mut ::core::ffi::c_int,
21487            csrValU: *mut f64,
21488            P: *mut ::core::ffi::c_int,
21489            Q: *mut ::core::ffi::c_int,
21490            handle: cusolverRfHandle_t,
21491        ) -> cusolverStatus_t,
21492        pub cusolverRfSetupHost: unsafe extern "C" fn(
21493            n: ::core::ffi::c_int,
21494            nnzA: ::core::ffi::c_int,
21495            h_csrRowPtrA: *mut ::core::ffi::c_int,
21496            h_csrColIndA: *mut ::core::ffi::c_int,
21497            h_csrValA: *mut f64,
21498            nnzL: ::core::ffi::c_int,
21499            h_csrRowPtrL: *mut ::core::ffi::c_int,
21500            h_csrColIndL: *mut ::core::ffi::c_int,
21501            h_csrValL: *mut f64,
21502            nnzU: ::core::ffi::c_int,
21503            h_csrRowPtrU: *mut ::core::ffi::c_int,
21504            h_csrColIndU: *mut ::core::ffi::c_int,
21505            h_csrValU: *mut f64,
21506            h_P: *mut ::core::ffi::c_int,
21507            h_Q: *mut ::core::ffi::c_int,
21508            handle: cusolverRfHandle_t,
21509        ) -> cusolverStatus_t,
21510        pub cusolverRfSolve: unsafe extern "C" fn(
21511            handle: cusolverRfHandle_t,
21512            P: *mut ::core::ffi::c_int,
21513            Q: *mut ::core::ffi::c_int,
21514            nrhs: ::core::ffi::c_int,
21515            Temp: *mut f64,
21516            ldt: ::core::ffi::c_int,
21517            XF: *mut f64,
21518            ldxf: ::core::ffi::c_int,
21519        ) -> cusolverStatus_t,
21520        pub cusolverSpCcsreigsHost: unsafe extern "C" fn(
21521            handle: cusolverSpHandle_t,
21522            m: ::core::ffi::c_int,
21523            nnz: ::core::ffi::c_int,
21524            descrA: cusparseMatDescr_t,
21525            csrValA: *const cuComplex,
21526            csrRowPtrA: *const ::core::ffi::c_int,
21527            csrColIndA: *const ::core::ffi::c_int,
21528            left_bottom_corner: cuComplex,
21529            right_upper_corner: cuComplex,
21530            num_eigs: *mut ::core::ffi::c_int,
21531        ) -> cusolverStatus_t,
21532        pub cusolverSpCcsreigvsi: unsafe extern "C" fn(
21533            handle: cusolverSpHandle_t,
21534            m: ::core::ffi::c_int,
21535            nnz: ::core::ffi::c_int,
21536            descrA: cusparseMatDescr_t,
21537            csrValA: *const cuComplex,
21538            csrRowPtrA: *const ::core::ffi::c_int,
21539            csrColIndA: *const ::core::ffi::c_int,
21540            mu0: cuComplex,
21541            x0: *const cuComplex,
21542            maxite: ::core::ffi::c_int,
21543            eps: f32,
21544            mu: *mut cuComplex,
21545            x: *mut cuComplex,
21546        ) -> cusolverStatus_t,
21547        pub cusolverSpCcsreigvsiHost: unsafe extern "C" fn(
21548            handle: cusolverSpHandle_t,
21549            m: ::core::ffi::c_int,
21550            nnz: ::core::ffi::c_int,
21551            descrA: cusparseMatDescr_t,
21552            csrValA: *const cuComplex,
21553            csrRowPtrA: *const ::core::ffi::c_int,
21554            csrColIndA: *const ::core::ffi::c_int,
21555            mu0: cuComplex,
21556            x0: *const cuComplex,
21557            maxite: ::core::ffi::c_int,
21558            tol: f32,
21559            mu: *mut cuComplex,
21560            x: *mut cuComplex,
21561        ) -> cusolverStatus_t,
21562        pub cusolverSpCcsrlsqvqrHost: unsafe extern "C" fn(
21563            handle: cusolverSpHandle_t,
21564            m: ::core::ffi::c_int,
21565            n: ::core::ffi::c_int,
21566            nnz: ::core::ffi::c_int,
21567            descrA: cusparseMatDescr_t,
21568            csrValA: *const cuComplex,
21569            csrRowPtrA: *const ::core::ffi::c_int,
21570            csrColIndA: *const ::core::ffi::c_int,
21571            b: *const cuComplex,
21572            tol: f32,
21573            rankA: *mut ::core::ffi::c_int,
21574            x: *mut cuComplex,
21575            p: *mut ::core::ffi::c_int,
21576            min_norm: *mut f32,
21577        ) -> cusolverStatus_t,
21578        pub cusolverSpCcsrlsvchol: unsafe extern "C" fn(
21579            handle: cusolverSpHandle_t,
21580            m: ::core::ffi::c_int,
21581            nnz: ::core::ffi::c_int,
21582            descrA: cusparseMatDescr_t,
21583            csrVal: *const cuComplex,
21584            csrRowPtr: *const ::core::ffi::c_int,
21585            csrColInd: *const ::core::ffi::c_int,
21586            b: *const cuComplex,
21587            tol: f32,
21588            reorder: ::core::ffi::c_int,
21589            x: *mut cuComplex,
21590            singularity: *mut ::core::ffi::c_int,
21591        ) -> cusolverStatus_t,
21592        pub cusolverSpCcsrlsvcholHost: unsafe extern "C" fn(
21593            handle: cusolverSpHandle_t,
21594            m: ::core::ffi::c_int,
21595            nnz: ::core::ffi::c_int,
21596            descrA: cusparseMatDescr_t,
21597            csrVal: *const cuComplex,
21598            csrRowPtr: *const ::core::ffi::c_int,
21599            csrColInd: *const ::core::ffi::c_int,
21600            b: *const cuComplex,
21601            tol: f32,
21602            reorder: ::core::ffi::c_int,
21603            x: *mut cuComplex,
21604            singularity: *mut ::core::ffi::c_int,
21605        ) -> cusolverStatus_t,
21606        pub cusolverSpCcsrlsvluHost: unsafe extern "C" fn(
21607            handle: cusolverSpHandle_t,
21608            n: ::core::ffi::c_int,
21609            nnzA: ::core::ffi::c_int,
21610            descrA: cusparseMatDescr_t,
21611            csrValA: *const cuComplex,
21612            csrRowPtrA: *const ::core::ffi::c_int,
21613            csrColIndA: *const ::core::ffi::c_int,
21614            b: *const cuComplex,
21615            tol: f32,
21616            reorder: ::core::ffi::c_int,
21617            x: *mut cuComplex,
21618            singularity: *mut ::core::ffi::c_int,
21619        ) -> cusolverStatus_t,
21620        pub cusolverSpCcsrlsvqr: unsafe extern "C" fn(
21621            handle: cusolverSpHandle_t,
21622            m: ::core::ffi::c_int,
21623            nnz: ::core::ffi::c_int,
21624            descrA: cusparseMatDescr_t,
21625            csrVal: *const cuComplex,
21626            csrRowPtr: *const ::core::ffi::c_int,
21627            csrColInd: *const ::core::ffi::c_int,
21628            b: *const cuComplex,
21629            tol: f32,
21630            reorder: ::core::ffi::c_int,
21631            x: *mut cuComplex,
21632            singularity: *mut ::core::ffi::c_int,
21633        ) -> cusolverStatus_t,
21634        pub cusolverSpCcsrlsvqrHost: unsafe extern "C" fn(
21635            handle: cusolverSpHandle_t,
21636            m: ::core::ffi::c_int,
21637            nnz: ::core::ffi::c_int,
21638            descrA: cusparseMatDescr_t,
21639            csrValA: *const cuComplex,
21640            csrRowPtrA: *const ::core::ffi::c_int,
21641            csrColIndA: *const ::core::ffi::c_int,
21642            b: *const cuComplex,
21643            tol: f32,
21644            reorder: ::core::ffi::c_int,
21645            x: *mut cuComplex,
21646            singularity: *mut ::core::ffi::c_int,
21647        ) -> cusolverStatus_t,
21648        pub cusolverSpCcsrqrBufferInfoBatched: unsafe extern "C" fn(
21649            handle: cusolverSpHandle_t,
21650            m: ::core::ffi::c_int,
21651            n: ::core::ffi::c_int,
21652            nnz: ::core::ffi::c_int,
21653            descrA: cusparseMatDescr_t,
21654            csrVal: *const cuComplex,
21655            csrRowPtr: *const ::core::ffi::c_int,
21656            csrColInd: *const ::core::ffi::c_int,
21657            batchSize: ::core::ffi::c_int,
21658            info: csrqrInfo_t,
21659            internalDataInBytes: *mut usize,
21660            workspaceInBytes: *mut usize,
21661        ) -> cusolverStatus_t,
21662        pub cusolverSpCcsrqrsvBatched: unsafe extern "C" fn(
21663            handle: cusolverSpHandle_t,
21664            m: ::core::ffi::c_int,
21665            n: ::core::ffi::c_int,
21666            nnz: ::core::ffi::c_int,
21667            descrA: cusparseMatDescr_t,
21668            csrValA: *const cuComplex,
21669            csrRowPtrA: *const ::core::ffi::c_int,
21670            csrColIndA: *const ::core::ffi::c_int,
21671            b: *const cuComplex,
21672            x: *mut cuComplex,
21673            batchSize: ::core::ffi::c_int,
21674            info: csrqrInfo_t,
21675            pBuffer: *mut ::core::ffi::c_void,
21676        ) -> cusolverStatus_t,
21677        pub cusolverSpCcsrzfdHost: unsafe extern "C" fn(
21678            handle: cusolverSpHandle_t,
21679            n: ::core::ffi::c_int,
21680            nnz: ::core::ffi::c_int,
21681            descrA: cusparseMatDescr_t,
21682            csrValA: *const cuComplex,
21683            csrRowPtrA: *const ::core::ffi::c_int,
21684            csrColIndA: *const ::core::ffi::c_int,
21685            P: *mut ::core::ffi::c_int,
21686            numnz: *mut ::core::ffi::c_int,
21687        ) -> cusolverStatus_t,
21688        pub cusolverSpCreate:
21689            unsafe extern "C" fn(handle: *mut cusolverSpHandle_t) -> cusolverStatus_t,
21690        pub cusolverSpCreateCsrqrInfo:
21691            unsafe extern "C" fn(info: *mut csrqrInfo_t) -> cusolverStatus_t,
21692        pub cusolverSpDcsreigsHost: unsafe extern "C" fn(
21693            handle: cusolverSpHandle_t,
21694            m: ::core::ffi::c_int,
21695            nnz: ::core::ffi::c_int,
21696            descrA: cusparseMatDescr_t,
21697            csrValA: *const f64,
21698            csrRowPtrA: *const ::core::ffi::c_int,
21699            csrColIndA: *const ::core::ffi::c_int,
21700            left_bottom_corner: cuDoubleComplex,
21701            right_upper_corner: cuDoubleComplex,
21702            num_eigs: *mut ::core::ffi::c_int,
21703        ) -> cusolverStatus_t,
21704        pub cusolverSpDcsreigvsi: unsafe extern "C" fn(
21705            handle: cusolverSpHandle_t,
21706            m: ::core::ffi::c_int,
21707            nnz: ::core::ffi::c_int,
21708            descrA: cusparseMatDescr_t,
21709            csrValA: *const f64,
21710            csrRowPtrA: *const ::core::ffi::c_int,
21711            csrColIndA: *const ::core::ffi::c_int,
21712            mu0: f64,
21713            x0: *const f64,
21714            maxite: ::core::ffi::c_int,
21715            eps: f64,
21716            mu: *mut f64,
21717            x: *mut f64,
21718        ) -> cusolverStatus_t,
21719        pub cusolverSpDcsreigvsiHost: unsafe extern "C" fn(
21720            handle: cusolverSpHandle_t,
21721            m: ::core::ffi::c_int,
21722            nnz: ::core::ffi::c_int,
21723            descrA: cusparseMatDescr_t,
21724            csrValA: *const f64,
21725            csrRowPtrA: *const ::core::ffi::c_int,
21726            csrColIndA: *const ::core::ffi::c_int,
21727            mu0: f64,
21728            x0: *const f64,
21729            maxite: ::core::ffi::c_int,
21730            tol: f64,
21731            mu: *mut f64,
21732            x: *mut f64,
21733        ) -> cusolverStatus_t,
21734        pub cusolverSpDcsrlsqvqrHost: unsafe extern "C" fn(
21735            handle: cusolverSpHandle_t,
21736            m: ::core::ffi::c_int,
21737            n: ::core::ffi::c_int,
21738            nnz: ::core::ffi::c_int,
21739            descrA: cusparseMatDescr_t,
21740            csrValA: *const f64,
21741            csrRowPtrA: *const ::core::ffi::c_int,
21742            csrColIndA: *const ::core::ffi::c_int,
21743            b: *const f64,
21744            tol: f64,
21745            rankA: *mut ::core::ffi::c_int,
21746            x: *mut f64,
21747            p: *mut ::core::ffi::c_int,
21748            min_norm: *mut f64,
21749        ) -> cusolverStatus_t,
21750        pub cusolverSpDcsrlsvchol: unsafe extern "C" fn(
21751            handle: cusolverSpHandle_t,
21752            m: ::core::ffi::c_int,
21753            nnz: ::core::ffi::c_int,
21754            descrA: cusparseMatDescr_t,
21755            csrVal: *const f64,
21756            csrRowPtr: *const ::core::ffi::c_int,
21757            csrColInd: *const ::core::ffi::c_int,
21758            b: *const f64,
21759            tol: f64,
21760            reorder: ::core::ffi::c_int,
21761            x: *mut f64,
21762            singularity: *mut ::core::ffi::c_int,
21763        ) -> cusolverStatus_t,
21764        pub cusolverSpDcsrlsvcholHost: unsafe extern "C" fn(
21765            handle: cusolverSpHandle_t,
21766            m: ::core::ffi::c_int,
21767            nnz: ::core::ffi::c_int,
21768            descrA: cusparseMatDescr_t,
21769            csrVal: *const f64,
21770            csrRowPtr: *const ::core::ffi::c_int,
21771            csrColInd: *const ::core::ffi::c_int,
21772            b: *const f64,
21773            tol: f64,
21774            reorder: ::core::ffi::c_int,
21775            x: *mut f64,
21776            singularity: *mut ::core::ffi::c_int,
21777        ) -> cusolverStatus_t,
21778        pub cusolverSpDcsrlsvluHost: unsafe extern "C" fn(
21779            handle: cusolverSpHandle_t,
21780            n: ::core::ffi::c_int,
21781            nnzA: ::core::ffi::c_int,
21782            descrA: cusparseMatDescr_t,
21783            csrValA: *const f64,
21784            csrRowPtrA: *const ::core::ffi::c_int,
21785            csrColIndA: *const ::core::ffi::c_int,
21786            b: *const f64,
21787            tol: f64,
21788            reorder: ::core::ffi::c_int,
21789            x: *mut f64,
21790            singularity: *mut ::core::ffi::c_int,
21791        ) -> cusolverStatus_t,
21792        pub cusolverSpDcsrlsvqr: unsafe extern "C" fn(
21793            handle: cusolverSpHandle_t,
21794            m: ::core::ffi::c_int,
21795            nnz: ::core::ffi::c_int,
21796            descrA: cusparseMatDescr_t,
21797            csrVal: *const f64,
21798            csrRowPtr: *const ::core::ffi::c_int,
21799            csrColInd: *const ::core::ffi::c_int,
21800            b: *const f64,
21801            tol: f64,
21802            reorder: ::core::ffi::c_int,
21803            x: *mut f64,
21804            singularity: *mut ::core::ffi::c_int,
21805        ) -> cusolverStatus_t,
21806        pub cusolverSpDcsrlsvqrHost: unsafe extern "C" fn(
21807            handle: cusolverSpHandle_t,
21808            m: ::core::ffi::c_int,
21809            nnz: ::core::ffi::c_int,
21810            descrA: cusparseMatDescr_t,
21811            csrValA: *const f64,
21812            csrRowPtrA: *const ::core::ffi::c_int,
21813            csrColIndA: *const ::core::ffi::c_int,
21814            b: *const f64,
21815            tol: f64,
21816            reorder: ::core::ffi::c_int,
21817            x: *mut f64,
21818            singularity: *mut ::core::ffi::c_int,
21819        ) -> cusolverStatus_t,
21820        pub cusolverSpDcsrqrBufferInfoBatched: unsafe extern "C" fn(
21821            handle: cusolverSpHandle_t,
21822            m: ::core::ffi::c_int,
21823            n: ::core::ffi::c_int,
21824            nnz: ::core::ffi::c_int,
21825            descrA: cusparseMatDescr_t,
21826            csrVal: *const f64,
21827            csrRowPtr: *const ::core::ffi::c_int,
21828            csrColInd: *const ::core::ffi::c_int,
21829            batchSize: ::core::ffi::c_int,
21830            info: csrqrInfo_t,
21831            internalDataInBytes: *mut usize,
21832            workspaceInBytes: *mut usize,
21833        ) -> cusolverStatus_t,
21834        pub cusolverSpDcsrqrsvBatched: unsafe extern "C" fn(
21835            handle: cusolverSpHandle_t,
21836            m: ::core::ffi::c_int,
21837            n: ::core::ffi::c_int,
21838            nnz: ::core::ffi::c_int,
21839            descrA: cusparseMatDescr_t,
21840            csrValA: *const f64,
21841            csrRowPtrA: *const ::core::ffi::c_int,
21842            csrColIndA: *const ::core::ffi::c_int,
21843            b: *const f64,
21844            x: *mut f64,
21845            batchSize: ::core::ffi::c_int,
21846            info: csrqrInfo_t,
21847            pBuffer: *mut ::core::ffi::c_void,
21848        ) -> cusolverStatus_t,
21849        pub cusolverSpDcsrzfdHost: unsafe extern "C" fn(
21850            handle: cusolverSpHandle_t,
21851            n: ::core::ffi::c_int,
21852            nnz: ::core::ffi::c_int,
21853            descrA: cusparseMatDescr_t,
21854            csrValA: *const f64,
21855            csrRowPtrA: *const ::core::ffi::c_int,
21856            csrColIndA: *const ::core::ffi::c_int,
21857            P: *mut ::core::ffi::c_int,
21858            numnz: *mut ::core::ffi::c_int,
21859        ) -> cusolverStatus_t,
21860        pub cusolverSpDestroy: unsafe extern "C" fn(handle: cusolverSpHandle_t) -> cusolverStatus_t,
21861        pub cusolverSpDestroyCsrqrInfo: unsafe extern "C" fn(info: csrqrInfo_t) -> cusolverStatus_t,
21862        pub cusolverSpGetStream: unsafe extern "C" fn(
21863            handle: cusolverSpHandle_t,
21864            streamId: *mut cudaStream_t,
21865        ) -> cusolverStatus_t,
21866        pub cusolverSpScsreigsHost: unsafe extern "C" fn(
21867            handle: cusolverSpHandle_t,
21868            m: ::core::ffi::c_int,
21869            nnz: ::core::ffi::c_int,
21870            descrA: cusparseMatDescr_t,
21871            csrValA: *const f32,
21872            csrRowPtrA: *const ::core::ffi::c_int,
21873            csrColIndA: *const ::core::ffi::c_int,
21874            left_bottom_corner: cuComplex,
21875            right_upper_corner: cuComplex,
21876            num_eigs: *mut ::core::ffi::c_int,
21877        ) -> cusolverStatus_t,
21878        pub cusolverSpScsreigvsi: unsafe extern "C" fn(
21879            handle: cusolverSpHandle_t,
21880            m: ::core::ffi::c_int,
21881            nnz: ::core::ffi::c_int,
21882            descrA: cusparseMatDescr_t,
21883            csrValA: *const f32,
21884            csrRowPtrA: *const ::core::ffi::c_int,
21885            csrColIndA: *const ::core::ffi::c_int,
21886            mu0: f32,
21887            x0: *const f32,
21888            maxite: ::core::ffi::c_int,
21889            eps: f32,
21890            mu: *mut f32,
21891            x: *mut f32,
21892        ) -> cusolverStatus_t,
21893        pub cusolverSpScsreigvsiHost: unsafe extern "C" fn(
21894            handle: cusolverSpHandle_t,
21895            m: ::core::ffi::c_int,
21896            nnz: ::core::ffi::c_int,
21897            descrA: cusparseMatDescr_t,
21898            csrValA: *const f32,
21899            csrRowPtrA: *const ::core::ffi::c_int,
21900            csrColIndA: *const ::core::ffi::c_int,
21901            mu0: f32,
21902            x0: *const f32,
21903            maxite: ::core::ffi::c_int,
21904            tol: f32,
21905            mu: *mut f32,
21906            x: *mut f32,
21907        ) -> cusolverStatus_t,
21908        pub cusolverSpScsrlsqvqrHost: unsafe extern "C" fn(
21909            handle: cusolverSpHandle_t,
21910            m: ::core::ffi::c_int,
21911            n: ::core::ffi::c_int,
21912            nnz: ::core::ffi::c_int,
21913            descrA: cusparseMatDescr_t,
21914            csrValA: *const f32,
21915            csrRowPtrA: *const ::core::ffi::c_int,
21916            csrColIndA: *const ::core::ffi::c_int,
21917            b: *const f32,
21918            tol: f32,
21919            rankA: *mut ::core::ffi::c_int,
21920            x: *mut f32,
21921            p: *mut ::core::ffi::c_int,
21922            min_norm: *mut f32,
21923        ) -> cusolverStatus_t,
21924        pub cusolverSpScsrlsvchol: unsafe extern "C" fn(
21925            handle: cusolverSpHandle_t,
21926            m: ::core::ffi::c_int,
21927            nnz: ::core::ffi::c_int,
21928            descrA: cusparseMatDescr_t,
21929            csrVal: *const f32,
21930            csrRowPtr: *const ::core::ffi::c_int,
21931            csrColInd: *const ::core::ffi::c_int,
21932            b: *const f32,
21933            tol: f32,
21934            reorder: ::core::ffi::c_int,
21935            x: *mut f32,
21936            singularity: *mut ::core::ffi::c_int,
21937        ) -> cusolverStatus_t,
21938        pub cusolverSpScsrlsvcholHost: unsafe extern "C" fn(
21939            handle: cusolverSpHandle_t,
21940            m: ::core::ffi::c_int,
21941            nnz: ::core::ffi::c_int,
21942            descrA: cusparseMatDescr_t,
21943            csrVal: *const f32,
21944            csrRowPtr: *const ::core::ffi::c_int,
21945            csrColInd: *const ::core::ffi::c_int,
21946            b: *const f32,
21947            tol: f32,
21948            reorder: ::core::ffi::c_int,
21949            x: *mut f32,
21950            singularity: *mut ::core::ffi::c_int,
21951        ) -> cusolverStatus_t,
21952        pub cusolverSpScsrlsvluHost: unsafe extern "C" fn(
21953            handle: cusolverSpHandle_t,
21954            n: ::core::ffi::c_int,
21955            nnzA: ::core::ffi::c_int,
21956            descrA: cusparseMatDescr_t,
21957            csrValA: *const f32,
21958            csrRowPtrA: *const ::core::ffi::c_int,
21959            csrColIndA: *const ::core::ffi::c_int,
21960            b: *const f32,
21961            tol: f32,
21962            reorder: ::core::ffi::c_int,
21963            x: *mut f32,
21964            singularity: *mut ::core::ffi::c_int,
21965        ) -> cusolverStatus_t,
21966        pub cusolverSpScsrlsvqr: unsafe extern "C" fn(
21967            handle: cusolverSpHandle_t,
21968            m: ::core::ffi::c_int,
21969            nnz: ::core::ffi::c_int,
21970            descrA: cusparseMatDescr_t,
21971            csrVal: *const f32,
21972            csrRowPtr: *const ::core::ffi::c_int,
21973            csrColInd: *const ::core::ffi::c_int,
21974            b: *const f32,
21975            tol: f32,
21976            reorder: ::core::ffi::c_int,
21977            x: *mut f32,
21978            singularity: *mut ::core::ffi::c_int,
21979        ) -> cusolverStatus_t,
21980        pub cusolverSpScsrlsvqrHost: unsafe extern "C" fn(
21981            handle: cusolverSpHandle_t,
21982            m: ::core::ffi::c_int,
21983            nnz: ::core::ffi::c_int,
21984            descrA: cusparseMatDescr_t,
21985            csrValA: *const f32,
21986            csrRowPtrA: *const ::core::ffi::c_int,
21987            csrColIndA: *const ::core::ffi::c_int,
21988            b: *const f32,
21989            tol: f32,
21990            reorder: ::core::ffi::c_int,
21991            x: *mut f32,
21992            singularity: *mut ::core::ffi::c_int,
21993        ) -> cusolverStatus_t,
21994        pub cusolverSpScsrqrBufferInfoBatched: unsafe extern "C" fn(
21995            handle: cusolverSpHandle_t,
21996            m: ::core::ffi::c_int,
21997            n: ::core::ffi::c_int,
21998            nnz: ::core::ffi::c_int,
21999            descrA: cusparseMatDescr_t,
22000            csrVal: *const f32,
22001            csrRowPtr: *const ::core::ffi::c_int,
22002            csrColInd: *const ::core::ffi::c_int,
22003            batchSize: ::core::ffi::c_int,
22004            info: csrqrInfo_t,
22005            internalDataInBytes: *mut usize,
22006            workspaceInBytes: *mut usize,
22007        ) -> cusolverStatus_t,
22008        pub cusolverSpScsrqrsvBatched: unsafe extern "C" fn(
22009            handle: cusolverSpHandle_t,
22010            m: ::core::ffi::c_int,
22011            n: ::core::ffi::c_int,
22012            nnz: ::core::ffi::c_int,
22013            descrA: cusparseMatDescr_t,
22014            csrValA: *const f32,
22015            csrRowPtrA: *const ::core::ffi::c_int,
22016            csrColIndA: *const ::core::ffi::c_int,
22017            b: *const f32,
22018            x: *mut f32,
22019            batchSize: ::core::ffi::c_int,
22020            info: csrqrInfo_t,
22021            pBuffer: *mut ::core::ffi::c_void,
22022        ) -> cusolverStatus_t,
22023        pub cusolverSpScsrzfdHost: unsafe extern "C" fn(
22024            handle: cusolverSpHandle_t,
22025            n: ::core::ffi::c_int,
22026            nnz: ::core::ffi::c_int,
22027            descrA: cusparseMatDescr_t,
22028            csrValA: *const f32,
22029            csrRowPtrA: *const ::core::ffi::c_int,
22030            csrColIndA: *const ::core::ffi::c_int,
22031            P: *mut ::core::ffi::c_int,
22032            numnz: *mut ::core::ffi::c_int,
22033        ) -> cusolverStatus_t,
22034        pub cusolverSpSetStream: unsafe extern "C" fn(
22035            handle: cusolverSpHandle_t,
22036            streamId: cudaStream_t,
22037        ) -> cusolverStatus_t,
22038        pub cusolverSpXcsrissymHost: unsafe extern "C" fn(
22039            handle: cusolverSpHandle_t,
22040            m: ::core::ffi::c_int,
22041            nnzA: ::core::ffi::c_int,
22042            descrA: cusparseMatDescr_t,
22043            csrRowPtrA: *const ::core::ffi::c_int,
22044            csrEndPtrA: *const ::core::ffi::c_int,
22045            csrColIndA: *const ::core::ffi::c_int,
22046            issym: *mut ::core::ffi::c_int,
22047        ) -> cusolverStatus_t,
22048        pub cusolverSpXcsrmetisndHost: unsafe extern "C" fn(
22049            handle: cusolverSpHandle_t,
22050            n: ::core::ffi::c_int,
22051            nnzA: ::core::ffi::c_int,
22052            descrA: cusparseMatDescr_t,
22053            csrRowPtrA: *const ::core::ffi::c_int,
22054            csrColIndA: *const ::core::ffi::c_int,
22055            options: *const i64,
22056            p: *mut ::core::ffi::c_int,
22057        ) -> cusolverStatus_t,
22058        pub cusolverSpXcsrpermHost: unsafe extern "C" fn(
22059            handle: cusolverSpHandle_t,
22060            m: ::core::ffi::c_int,
22061            n: ::core::ffi::c_int,
22062            nnzA: ::core::ffi::c_int,
22063            descrA: cusparseMatDescr_t,
22064            csrRowPtrA: *mut ::core::ffi::c_int,
22065            csrColIndA: *mut ::core::ffi::c_int,
22066            p: *const ::core::ffi::c_int,
22067            q: *const ::core::ffi::c_int,
22068            map: *mut ::core::ffi::c_int,
22069            pBuffer: *mut ::core::ffi::c_void,
22070        ) -> cusolverStatus_t,
22071        pub cusolverSpXcsrperm_bufferSizeHost: unsafe extern "C" fn(
22072            handle: cusolverSpHandle_t,
22073            m: ::core::ffi::c_int,
22074            n: ::core::ffi::c_int,
22075            nnzA: ::core::ffi::c_int,
22076            descrA: cusparseMatDescr_t,
22077            csrRowPtrA: *const ::core::ffi::c_int,
22078            csrColIndA: *const ::core::ffi::c_int,
22079            p: *const ::core::ffi::c_int,
22080            q: *const ::core::ffi::c_int,
22081            bufferSizeInBytes: *mut usize,
22082        ) -> cusolverStatus_t,
22083        pub cusolverSpXcsrqrAnalysisBatched: unsafe extern "C" fn(
22084            handle: cusolverSpHandle_t,
22085            m: ::core::ffi::c_int,
22086            n: ::core::ffi::c_int,
22087            nnzA: ::core::ffi::c_int,
22088            descrA: cusparseMatDescr_t,
22089            csrRowPtrA: *const ::core::ffi::c_int,
22090            csrColIndA: *const ::core::ffi::c_int,
22091            info: csrqrInfo_t,
22092        ) -> cusolverStatus_t,
22093        pub cusolverSpXcsrsymamdHost: unsafe extern "C" fn(
22094            handle: cusolverSpHandle_t,
22095            n: ::core::ffi::c_int,
22096            nnzA: ::core::ffi::c_int,
22097            descrA: cusparseMatDescr_t,
22098            csrRowPtrA: *const ::core::ffi::c_int,
22099            csrColIndA: *const ::core::ffi::c_int,
22100            p: *mut ::core::ffi::c_int,
22101        ) -> cusolverStatus_t,
22102        pub cusolverSpXcsrsymmdqHost: unsafe extern "C" fn(
22103            handle: cusolverSpHandle_t,
22104            n: ::core::ffi::c_int,
22105            nnzA: ::core::ffi::c_int,
22106            descrA: cusparseMatDescr_t,
22107            csrRowPtrA: *const ::core::ffi::c_int,
22108            csrColIndA: *const ::core::ffi::c_int,
22109            p: *mut ::core::ffi::c_int,
22110        ) -> cusolverStatus_t,
22111        pub cusolverSpXcsrsymrcmHost: unsafe extern "C" fn(
22112            handle: cusolverSpHandle_t,
22113            n: ::core::ffi::c_int,
22114            nnzA: ::core::ffi::c_int,
22115            descrA: cusparseMatDescr_t,
22116            csrRowPtrA: *const ::core::ffi::c_int,
22117            csrColIndA: *const ::core::ffi::c_int,
22118            p: *mut ::core::ffi::c_int,
22119        ) -> cusolverStatus_t,
22120        pub cusolverSpZcsreigsHost: unsafe extern "C" fn(
22121            handle: cusolverSpHandle_t,
22122            m: ::core::ffi::c_int,
22123            nnz: ::core::ffi::c_int,
22124            descrA: cusparseMatDescr_t,
22125            csrValA: *const cuDoubleComplex,
22126            csrRowPtrA: *const ::core::ffi::c_int,
22127            csrColIndA: *const ::core::ffi::c_int,
22128            left_bottom_corner: cuDoubleComplex,
22129            right_upper_corner: cuDoubleComplex,
22130            num_eigs: *mut ::core::ffi::c_int,
22131        ) -> cusolverStatus_t,
22132        pub cusolverSpZcsreigvsi: unsafe extern "C" fn(
22133            handle: cusolverSpHandle_t,
22134            m: ::core::ffi::c_int,
22135            nnz: ::core::ffi::c_int,
22136            descrA: cusparseMatDescr_t,
22137            csrValA: *const cuDoubleComplex,
22138            csrRowPtrA: *const ::core::ffi::c_int,
22139            csrColIndA: *const ::core::ffi::c_int,
22140            mu0: cuDoubleComplex,
22141            x0: *const cuDoubleComplex,
22142            maxite: ::core::ffi::c_int,
22143            eps: f64,
22144            mu: *mut cuDoubleComplex,
22145            x: *mut cuDoubleComplex,
22146        ) -> cusolverStatus_t,
22147        pub cusolverSpZcsreigvsiHost: unsafe extern "C" fn(
22148            handle: cusolverSpHandle_t,
22149            m: ::core::ffi::c_int,
22150            nnz: ::core::ffi::c_int,
22151            descrA: cusparseMatDescr_t,
22152            csrValA: *const cuDoubleComplex,
22153            csrRowPtrA: *const ::core::ffi::c_int,
22154            csrColIndA: *const ::core::ffi::c_int,
22155            mu0: cuDoubleComplex,
22156            x0: *const cuDoubleComplex,
22157            maxite: ::core::ffi::c_int,
22158            tol: f64,
22159            mu: *mut cuDoubleComplex,
22160            x: *mut cuDoubleComplex,
22161        ) -> cusolverStatus_t,
22162        pub cusolverSpZcsrlsqvqrHost: unsafe extern "C" fn(
22163            handle: cusolverSpHandle_t,
22164            m: ::core::ffi::c_int,
22165            n: ::core::ffi::c_int,
22166            nnz: ::core::ffi::c_int,
22167            descrA: cusparseMatDescr_t,
22168            csrValA: *const cuDoubleComplex,
22169            csrRowPtrA: *const ::core::ffi::c_int,
22170            csrColIndA: *const ::core::ffi::c_int,
22171            b: *const cuDoubleComplex,
22172            tol: f64,
22173            rankA: *mut ::core::ffi::c_int,
22174            x: *mut cuDoubleComplex,
22175            p: *mut ::core::ffi::c_int,
22176            min_norm: *mut f64,
22177        ) -> cusolverStatus_t,
22178        pub cusolverSpZcsrlsvchol: unsafe extern "C" fn(
22179            handle: cusolverSpHandle_t,
22180            m: ::core::ffi::c_int,
22181            nnz: ::core::ffi::c_int,
22182            descrA: cusparseMatDescr_t,
22183            csrVal: *const cuDoubleComplex,
22184            csrRowPtr: *const ::core::ffi::c_int,
22185            csrColInd: *const ::core::ffi::c_int,
22186            b: *const cuDoubleComplex,
22187            tol: f64,
22188            reorder: ::core::ffi::c_int,
22189            x: *mut cuDoubleComplex,
22190            singularity: *mut ::core::ffi::c_int,
22191        ) -> cusolverStatus_t,
22192        pub cusolverSpZcsrlsvcholHost: unsafe extern "C" fn(
22193            handle: cusolverSpHandle_t,
22194            m: ::core::ffi::c_int,
22195            nnz: ::core::ffi::c_int,
22196            descrA: cusparseMatDescr_t,
22197            csrVal: *const cuDoubleComplex,
22198            csrRowPtr: *const ::core::ffi::c_int,
22199            csrColInd: *const ::core::ffi::c_int,
22200            b: *const cuDoubleComplex,
22201            tol: f64,
22202            reorder: ::core::ffi::c_int,
22203            x: *mut cuDoubleComplex,
22204            singularity: *mut ::core::ffi::c_int,
22205        ) -> cusolverStatus_t,
22206        pub cusolverSpZcsrlsvluHost: unsafe extern "C" fn(
22207            handle: cusolverSpHandle_t,
22208            n: ::core::ffi::c_int,
22209            nnzA: ::core::ffi::c_int,
22210            descrA: cusparseMatDescr_t,
22211            csrValA: *const cuDoubleComplex,
22212            csrRowPtrA: *const ::core::ffi::c_int,
22213            csrColIndA: *const ::core::ffi::c_int,
22214            b: *const cuDoubleComplex,
22215            tol: f64,
22216            reorder: ::core::ffi::c_int,
22217            x: *mut cuDoubleComplex,
22218            singularity: *mut ::core::ffi::c_int,
22219        ) -> cusolverStatus_t,
22220        pub cusolverSpZcsrlsvqr: unsafe extern "C" fn(
22221            handle: cusolverSpHandle_t,
22222            m: ::core::ffi::c_int,
22223            nnz: ::core::ffi::c_int,
22224            descrA: cusparseMatDescr_t,
22225            csrVal: *const cuDoubleComplex,
22226            csrRowPtr: *const ::core::ffi::c_int,
22227            csrColInd: *const ::core::ffi::c_int,
22228            b: *const cuDoubleComplex,
22229            tol: f64,
22230            reorder: ::core::ffi::c_int,
22231            x: *mut cuDoubleComplex,
22232            singularity: *mut ::core::ffi::c_int,
22233        ) -> cusolverStatus_t,
22234        pub cusolverSpZcsrlsvqrHost: unsafe extern "C" fn(
22235            handle: cusolverSpHandle_t,
22236            m: ::core::ffi::c_int,
22237            nnz: ::core::ffi::c_int,
22238            descrA: cusparseMatDescr_t,
22239            csrValA: *const cuDoubleComplex,
22240            csrRowPtrA: *const ::core::ffi::c_int,
22241            csrColIndA: *const ::core::ffi::c_int,
22242            b: *const cuDoubleComplex,
22243            tol: f64,
22244            reorder: ::core::ffi::c_int,
22245            x: *mut cuDoubleComplex,
22246            singularity: *mut ::core::ffi::c_int,
22247        ) -> cusolverStatus_t,
22248        pub cusolverSpZcsrqrBufferInfoBatched: unsafe extern "C" fn(
22249            handle: cusolverSpHandle_t,
22250            m: ::core::ffi::c_int,
22251            n: ::core::ffi::c_int,
22252            nnz: ::core::ffi::c_int,
22253            descrA: cusparseMatDescr_t,
22254            csrVal: *const cuDoubleComplex,
22255            csrRowPtr: *const ::core::ffi::c_int,
22256            csrColInd: *const ::core::ffi::c_int,
22257            batchSize: ::core::ffi::c_int,
22258            info: csrqrInfo_t,
22259            internalDataInBytes: *mut usize,
22260            workspaceInBytes: *mut usize,
22261        ) -> cusolverStatus_t,
22262        pub cusolverSpZcsrqrsvBatched: unsafe extern "C" fn(
22263            handle: cusolverSpHandle_t,
22264            m: ::core::ffi::c_int,
22265            n: ::core::ffi::c_int,
22266            nnz: ::core::ffi::c_int,
22267            descrA: cusparseMatDescr_t,
22268            csrValA: *const cuDoubleComplex,
22269            csrRowPtrA: *const ::core::ffi::c_int,
22270            csrColIndA: *const ::core::ffi::c_int,
22271            b: *const cuDoubleComplex,
22272            x: *mut cuDoubleComplex,
22273            batchSize: ::core::ffi::c_int,
22274            info: csrqrInfo_t,
22275            pBuffer: *mut ::core::ffi::c_void,
22276        ) -> cusolverStatus_t,
22277        pub cusolverSpZcsrzfdHost: unsafe extern "C" fn(
22278            handle: cusolverSpHandle_t,
22279            n: ::core::ffi::c_int,
22280            nnz: ::core::ffi::c_int,
22281            descrA: cusparseMatDescr_t,
22282            csrValA: *const cuDoubleComplex,
22283            csrRowPtrA: *const ::core::ffi::c_int,
22284            csrColIndA: *const ::core::ffi::c_int,
22285            P: *mut ::core::ffi::c_int,
22286            numnz: *mut ::core::ffi::c_int,
22287        ) -> cusolverStatus_t,
22288    }
22289    impl Lib {
22290        pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
22291        where
22292            P: AsRef<::std::ffi::OsStr>,
22293        {
22294            let library = ::libloading::Library::new(path.as_ref())?;
22295            Self::from_library(library)
22296        }
22297        pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
22298        where
22299            L: Into<::libloading::Library>,
22300        {
22301            let __library = library.into();
22302            let cusolverDnCCgels = __library
22303                .get(b"cusolverDnCCgels\0")
22304                .map(|sym| *sym)
22305                .expect("Expected symbol in library");
22306            let cusolverDnCCgels_bufferSize = __library
22307                .get(b"cusolverDnCCgels_bufferSize\0")
22308                .map(|sym| *sym)
22309                .expect("Expected symbol in library");
22310            let cusolverDnCCgesv = __library
22311                .get(b"cusolverDnCCgesv\0")
22312                .map(|sym| *sym)
22313                .expect("Expected symbol in library");
22314            let cusolverDnCCgesv_bufferSize = __library
22315                .get(b"cusolverDnCCgesv_bufferSize\0")
22316                .map(|sym| *sym)
22317                .expect("Expected symbol in library");
22318            let cusolverDnCEgels = __library
22319                .get(b"cusolverDnCEgels\0")
22320                .map(|sym| *sym)
22321                .expect("Expected symbol in library");
22322            let cusolverDnCEgels_bufferSize = __library
22323                .get(b"cusolverDnCEgels_bufferSize\0")
22324                .map(|sym| *sym)
22325                .expect("Expected symbol in library");
22326            let cusolverDnCEgesv = __library
22327                .get(b"cusolverDnCEgesv\0")
22328                .map(|sym| *sym)
22329                .expect("Expected symbol in library");
22330            let cusolverDnCEgesv_bufferSize = __library
22331                .get(b"cusolverDnCEgesv_bufferSize\0")
22332                .map(|sym| *sym)
22333                .expect("Expected symbol in library");
22334            let cusolverDnCKgels = __library
22335                .get(b"cusolverDnCKgels\0")
22336                .map(|sym| *sym)
22337                .expect("Expected symbol in library");
22338            let cusolverDnCKgels_bufferSize = __library
22339                .get(b"cusolverDnCKgels_bufferSize\0")
22340                .map(|sym| *sym)
22341                .expect("Expected symbol in library");
22342            let cusolverDnCKgesv = __library
22343                .get(b"cusolverDnCKgesv\0")
22344                .map(|sym| *sym)
22345                .expect("Expected symbol in library");
22346            let cusolverDnCKgesv_bufferSize = __library
22347                .get(b"cusolverDnCKgesv_bufferSize\0")
22348                .map(|sym| *sym)
22349                .expect("Expected symbol in library");
22350            let cusolverDnCYgels = __library
22351                .get(b"cusolverDnCYgels\0")
22352                .map(|sym| *sym)
22353                .expect("Expected symbol in library");
22354            let cusolverDnCYgels_bufferSize = __library
22355                .get(b"cusolverDnCYgels_bufferSize\0")
22356                .map(|sym| *sym)
22357                .expect("Expected symbol in library");
22358            let cusolverDnCYgesv = __library
22359                .get(b"cusolverDnCYgesv\0")
22360                .map(|sym| *sym)
22361                .expect("Expected symbol in library");
22362            let cusolverDnCYgesv_bufferSize = __library
22363                .get(b"cusolverDnCYgesv_bufferSize\0")
22364                .map(|sym| *sym)
22365                .expect("Expected symbol in library");
22366            let cusolverDnCgebrd = __library
22367                .get(b"cusolverDnCgebrd\0")
22368                .map(|sym| *sym)
22369                .expect("Expected symbol in library");
22370            let cusolverDnCgebrd_bufferSize = __library
22371                .get(b"cusolverDnCgebrd_bufferSize\0")
22372                .map(|sym| *sym)
22373                .expect("Expected symbol in library");
22374            let cusolverDnCgeqrf = __library
22375                .get(b"cusolverDnCgeqrf\0")
22376                .map(|sym| *sym)
22377                .expect("Expected symbol in library");
22378            let cusolverDnCgeqrf_bufferSize = __library
22379                .get(b"cusolverDnCgeqrf_bufferSize\0")
22380                .map(|sym| *sym)
22381                .expect("Expected symbol in library");
22382            let cusolverDnCgesvd = __library
22383                .get(b"cusolverDnCgesvd\0")
22384                .map(|sym| *sym)
22385                .expect("Expected symbol in library");
22386            let cusolverDnCgesvd_bufferSize = __library
22387                .get(b"cusolverDnCgesvd_bufferSize\0")
22388                .map(|sym| *sym)
22389                .expect("Expected symbol in library");
22390            let cusolverDnCgesvdaStridedBatched = __library
22391                .get(b"cusolverDnCgesvdaStridedBatched\0")
22392                .map(|sym| *sym)
22393                .expect("Expected symbol in library");
22394            let cusolverDnCgesvdaStridedBatched_bufferSize = __library
22395                .get(b"cusolverDnCgesvdaStridedBatched_bufferSize\0")
22396                .map(|sym| *sym)
22397                .expect("Expected symbol in library");
22398            let cusolverDnCgesvdj = __library
22399                .get(b"cusolverDnCgesvdj\0")
22400                .map(|sym| *sym)
22401                .expect("Expected symbol in library");
22402            let cusolverDnCgesvdjBatched = __library
22403                .get(b"cusolverDnCgesvdjBatched\0")
22404                .map(|sym| *sym)
22405                .expect("Expected symbol in library");
22406            let cusolverDnCgesvdjBatched_bufferSize = __library
22407                .get(b"cusolverDnCgesvdjBatched_bufferSize\0")
22408                .map(|sym| *sym)
22409                .expect("Expected symbol in library");
22410            let cusolverDnCgesvdj_bufferSize = __library
22411                .get(b"cusolverDnCgesvdj_bufferSize\0")
22412                .map(|sym| *sym)
22413                .expect("Expected symbol in library");
22414            let cusolverDnCgetrf = __library
22415                .get(b"cusolverDnCgetrf\0")
22416                .map(|sym| *sym)
22417                .expect("Expected symbol in library");
22418            let cusolverDnCgetrf_bufferSize = __library
22419                .get(b"cusolverDnCgetrf_bufferSize\0")
22420                .map(|sym| *sym)
22421                .expect("Expected symbol in library");
22422            let cusolverDnCgetrs = __library
22423                .get(b"cusolverDnCgetrs\0")
22424                .map(|sym| *sym)
22425                .expect("Expected symbol in library");
22426            let cusolverDnCheevd = __library
22427                .get(b"cusolverDnCheevd\0")
22428                .map(|sym| *sym)
22429                .expect("Expected symbol in library");
22430            let cusolverDnCheevd_bufferSize = __library
22431                .get(b"cusolverDnCheevd_bufferSize\0")
22432                .map(|sym| *sym)
22433                .expect("Expected symbol in library");
22434            let cusolverDnCheevdx = __library
22435                .get(b"cusolverDnCheevdx\0")
22436                .map(|sym| *sym)
22437                .expect("Expected symbol in library");
22438            let cusolverDnCheevdx_bufferSize = __library
22439                .get(b"cusolverDnCheevdx_bufferSize\0")
22440                .map(|sym| *sym)
22441                .expect("Expected symbol in library");
22442            let cusolverDnCheevj = __library
22443                .get(b"cusolverDnCheevj\0")
22444                .map(|sym| *sym)
22445                .expect("Expected symbol in library");
22446            let cusolverDnCheevjBatched = __library
22447                .get(b"cusolverDnCheevjBatched\0")
22448                .map(|sym| *sym)
22449                .expect("Expected symbol in library");
22450            let cusolverDnCheevjBatched_bufferSize = __library
22451                .get(b"cusolverDnCheevjBatched_bufferSize\0")
22452                .map(|sym| *sym)
22453                .expect("Expected symbol in library");
22454            let cusolverDnCheevj_bufferSize = __library
22455                .get(b"cusolverDnCheevj_bufferSize\0")
22456                .map(|sym| *sym)
22457                .expect("Expected symbol in library");
22458            let cusolverDnChegvd = __library
22459                .get(b"cusolverDnChegvd\0")
22460                .map(|sym| *sym)
22461                .expect("Expected symbol in library");
22462            let cusolverDnChegvd_bufferSize = __library
22463                .get(b"cusolverDnChegvd_bufferSize\0")
22464                .map(|sym| *sym)
22465                .expect("Expected symbol in library");
22466            let cusolverDnChegvdx = __library
22467                .get(b"cusolverDnChegvdx\0")
22468                .map(|sym| *sym)
22469                .expect("Expected symbol in library");
22470            let cusolverDnChegvdx_bufferSize = __library
22471                .get(b"cusolverDnChegvdx_bufferSize\0")
22472                .map(|sym| *sym)
22473                .expect("Expected symbol in library");
22474            let cusolverDnChegvj = __library
22475                .get(b"cusolverDnChegvj\0")
22476                .map(|sym| *sym)
22477                .expect("Expected symbol in library");
22478            let cusolverDnChegvj_bufferSize = __library
22479                .get(b"cusolverDnChegvj_bufferSize\0")
22480                .map(|sym| *sym)
22481                .expect("Expected symbol in library");
22482            let cusolverDnChetrd = __library
22483                .get(b"cusolverDnChetrd\0")
22484                .map(|sym| *sym)
22485                .expect("Expected symbol in library");
22486            let cusolverDnChetrd_bufferSize = __library
22487                .get(b"cusolverDnChetrd_bufferSize\0")
22488                .map(|sym| *sym)
22489                .expect("Expected symbol in library");
22490            let cusolverDnClaswp = __library
22491                .get(b"cusolverDnClaswp\0")
22492                .map(|sym| *sym)
22493                .expect("Expected symbol in library");
22494            let cusolverDnClauum = __library
22495                .get(b"cusolverDnClauum\0")
22496                .map(|sym| *sym)
22497                .expect("Expected symbol in library");
22498            let cusolverDnClauum_bufferSize = __library
22499                .get(b"cusolverDnClauum_bufferSize\0")
22500                .map(|sym| *sym)
22501                .expect("Expected symbol in library");
22502            let cusolverDnCpotrf = __library
22503                .get(b"cusolverDnCpotrf\0")
22504                .map(|sym| *sym)
22505                .expect("Expected symbol in library");
22506            let cusolverDnCpotrfBatched = __library
22507                .get(b"cusolverDnCpotrfBatched\0")
22508                .map(|sym| *sym)
22509                .expect("Expected symbol in library");
22510            let cusolverDnCpotrf_bufferSize = __library
22511                .get(b"cusolverDnCpotrf_bufferSize\0")
22512                .map(|sym| *sym)
22513                .expect("Expected symbol in library");
22514            let cusolverDnCpotri = __library
22515                .get(b"cusolverDnCpotri\0")
22516                .map(|sym| *sym)
22517                .expect("Expected symbol in library");
22518            let cusolverDnCpotri_bufferSize = __library
22519                .get(b"cusolverDnCpotri_bufferSize\0")
22520                .map(|sym| *sym)
22521                .expect("Expected symbol in library");
22522            let cusolverDnCpotrs = __library
22523                .get(b"cusolverDnCpotrs\0")
22524                .map(|sym| *sym)
22525                .expect("Expected symbol in library");
22526            let cusolverDnCpotrsBatched = __library
22527                .get(b"cusolverDnCpotrsBatched\0")
22528                .map(|sym| *sym)
22529                .expect("Expected symbol in library");
22530            let cusolverDnCreate = __library
22531                .get(b"cusolverDnCreate\0")
22532                .map(|sym| *sym)
22533                .expect("Expected symbol in library");
22534            let cusolverDnCreateGesvdjInfo = __library
22535                .get(b"cusolverDnCreateGesvdjInfo\0")
22536                .map(|sym| *sym)
22537                .expect("Expected symbol in library");
22538            let cusolverDnCreateParams = __library
22539                .get(b"cusolverDnCreateParams\0")
22540                .map(|sym| *sym)
22541                .expect("Expected symbol in library");
22542            let cusolverDnCreateSyevjInfo = __library
22543                .get(b"cusolverDnCreateSyevjInfo\0")
22544                .map(|sym| *sym)
22545                .expect("Expected symbol in library");
22546            let cusolverDnCsytrf = __library
22547                .get(b"cusolverDnCsytrf\0")
22548                .map(|sym| *sym)
22549                .expect("Expected symbol in library");
22550            let cusolverDnCsytrf_bufferSize = __library
22551                .get(b"cusolverDnCsytrf_bufferSize\0")
22552                .map(|sym| *sym)
22553                .expect("Expected symbol in library");
22554            let cusolverDnCsytri = __library
22555                .get(b"cusolverDnCsytri\0")
22556                .map(|sym| *sym)
22557                .expect("Expected symbol in library");
22558            let cusolverDnCsytri_bufferSize = __library
22559                .get(b"cusolverDnCsytri_bufferSize\0")
22560                .map(|sym| *sym)
22561                .expect("Expected symbol in library");
22562            let cusolverDnCungbr = __library
22563                .get(b"cusolverDnCungbr\0")
22564                .map(|sym| *sym)
22565                .expect("Expected symbol in library");
22566            let cusolverDnCungbr_bufferSize = __library
22567                .get(b"cusolverDnCungbr_bufferSize\0")
22568                .map(|sym| *sym)
22569                .expect("Expected symbol in library");
22570            let cusolverDnCungqr = __library
22571                .get(b"cusolverDnCungqr\0")
22572                .map(|sym| *sym)
22573                .expect("Expected symbol in library");
22574            let cusolverDnCungqr_bufferSize = __library
22575                .get(b"cusolverDnCungqr_bufferSize\0")
22576                .map(|sym| *sym)
22577                .expect("Expected symbol in library");
22578            let cusolverDnCungtr = __library
22579                .get(b"cusolverDnCungtr\0")
22580                .map(|sym| *sym)
22581                .expect("Expected symbol in library");
22582            let cusolverDnCungtr_bufferSize = __library
22583                .get(b"cusolverDnCungtr_bufferSize\0")
22584                .map(|sym| *sym)
22585                .expect("Expected symbol in library");
22586            let cusolverDnCunmqr = __library
22587                .get(b"cusolverDnCunmqr\0")
22588                .map(|sym| *sym)
22589                .expect("Expected symbol in library");
22590            let cusolverDnCunmqr_bufferSize = __library
22591                .get(b"cusolverDnCunmqr_bufferSize\0")
22592                .map(|sym| *sym)
22593                .expect("Expected symbol in library");
22594            let cusolverDnCunmtr = __library
22595                .get(b"cusolverDnCunmtr\0")
22596                .map(|sym| *sym)
22597                .expect("Expected symbol in library");
22598            let cusolverDnCunmtr_bufferSize = __library
22599                .get(b"cusolverDnCunmtr_bufferSize\0")
22600                .map(|sym| *sym)
22601                .expect("Expected symbol in library");
22602            let cusolverDnDBgels = __library
22603                .get(b"cusolverDnDBgels\0")
22604                .map(|sym| *sym)
22605                .expect("Expected symbol in library");
22606            let cusolverDnDBgels_bufferSize = __library
22607                .get(b"cusolverDnDBgels_bufferSize\0")
22608                .map(|sym| *sym)
22609                .expect("Expected symbol in library");
22610            let cusolverDnDBgesv = __library
22611                .get(b"cusolverDnDBgesv\0")
22612                .map(|sym| *sym)
22613                .expect("Expected symbol in library");
22614            let cusolverDnDBgesv_bufferSize = __library
22615                .get(b"cusolverDnDBgesv_bufferSize\0")
22616                .map(|sym| *sym)
22617                .expect("Expected symbol in library");
22618            let cusolverDnDDgels = __library
22619                .get(b"cusolverDnDDgels\0")
22620                .map(|sym| *sym)
22621                .expect("Expected symbol in library");
22622            let cusolverDnDDgels_bufferSize = __library
22623                .get(b"cusolverDnDDgels_bufferSize\0")
22624                .map(|sym| *sym)
22625                .expect("Expected symbol in library");
22626            let cusolverDnDDgesv = __library
22627                .get(b"cusolverDnDDgesv\0")
22628                .map(|sym| *sym)
22629                .expect("Expected symbol in library");
22630            let cusolverDnDDgesv_bufferSize = __library
22631                .get(b"cusolverDnDDgesv_bufferSize\0")
22632                .map(|sym| *sym)
22633                .expect("Expected symbol in library");
22634            let cusolverDnDHgels = __library
22635                .get(b"cusolverDnDHgels\0")
22636                .map(|sym| *sym)
22637                .expect("Expected symbol in library");
22638            let cusolverDnDHgels_bufferSize = __library
22639                .get(b"cusolverDnDHgels_bufferSize\0")
22640                .map(|sym| *sym)
22641                .expect("Expected symbol in library");
22642            let cusolverDnDHgesv = __library
22643                .get(b"cusolverDnDHgesv\0")
22644                .map(|sym| *sym)
22645                .expect("Expected symbol in library");
22646            let cusolverDnDHgesv_bufferSize = __library
22647                .get(b"cusolverDnDHgesv_bufferSize\0")
22648                .map(|sym| *sym)
22649                .expect("Expected symbol in library");
22650            let cusolverDnDSgels = __library
22651                .get(b"cusolverDnDSgels\0")
22652                .map(|sym| *sym)
22653                .expect("Expected symbol in library");
22654            let cusolverDnDSgels_bufferSize = __library
22655                .get(b"cusolverDnDSgels_bufferSize\0")
22656                .map(|sym| *sym)
22657                .expect("Expected symbol in library");
22658            let cusolverDnDSgesv = __library
22659                .get(b"cusolverDnDSgesv\0")
22660                .map(|sym| *sym)
22661                .expect("Expected symbol in library");
22662            let cusolverDnDSgesv_bufferSize = __library
22663                .get(b"cusolverDnDSgesv_bufferSize\0")
22664                .map(|sym| *sym)
22665                .expect("Expected symbol in library");
22666            let cusolverDnDXgels = __library
22667                .get(b"cusolverDnDXgels\0")
22668                .map(|sym| *sym)
22669                .expect("Expected symbol in library");
22670            let cusolverDnDXgels_bufferSize = __library
22671                .get(b"cusolverDnDXgels_bufferSize\0")
22672                .map(|sym| *sym)
22673                .expect("Expected symbol in library");
22674            let cusolverDnDXgesv = __library
22675                .get(b"cusolverDnDXgesv\0")
22676                .map(|sym| *sym)
22677                .expect("Expected symbol in library");
22678            let cusolverDnDXgesv_bufferSize = __library
22679                .get(b"cusolverDnDXgesv_bufferSize\0")
22680                .map(|sym| *sym)
22681                .expect("Expected symbol in library");
22682            let cusolverDnDestroy = __library
22683                .get(b"cusolverDnDestroy\0")
22684                .map(|sym| *sym)
22685                .expect("Expected symbol in library");
22686            let cusolverDnDestroyGesvdjInfo = __library
22687                .get(b"cusolverDnDestroyGesvdjInfo\0")
22688                .map(|sym| *sym)
22689                .expect("Expected symbol in library");
22690            let cusolverDnDestroyParams = __library
22691                .get(b"cusolverDnDestroyParams\0")
22692                .map(|sym| *sym)
22693                .expect("Expected symbol in library");
22694            let cusolverDnDestroySyevjInfo = __library
22695                .get(b"cusolverDnDestroySyevjInfo\0")
22696                .map(|sym| *sym)
22697                .expect("Expected symbol in library");
22698            let cusolverDnDgebrd = __library
22699                .get(b"cusolverDnDgebrd\0")
22700                .map(|sym| *sym)
22701                .expect("Expected symbol in library");
22702            let cusolverDnDgebrd_bufferSize = __library
22703                .get(b"cusolverDnDgebrd_bufferSize\0")
22704                .map(|sym| *sym)
22705                .expect("Expected symbol in library");
22706            let cusolverDnDgeqrf = __library
22707                .get(b"cusolverDnDgeqrf\0")
22708                .map(|sym| *sym)
22709                .expect("Expected symbol in library");
22710            let cusolverDnDgeqrf_bufferSize = __library
22711                .get(b"cusolverDnDgeqrf_bufferSize\0")
22712                .map(|sym| *sym)
22713                .expect("Expected symbol in library");
22714            let cusolverDnDgesvd = __library
22715                .get(b"cusolverDnDgesvd\0")
22716                .map(|sym| *sym)
22717                .expect("Expected symbol in library");
22718            let cusolverDnDgesvd_bufferSize = __library
22719                .get(b"cusolverDnDgesvd_bufferSize\0")
22720                .map(|sym| *sym)
22721                .expect("Expected symbol in library");
22722            let cusolverDnDgesvdaStridedBatched = __library
22723                .get(b"cusolverDnDgesvdaStridedBatched\0")
22724                .map(|sym| *sym)
22725                .expect("Expected symbol in library");
22726            let cusolverDnDgesvdaStridedBatched_bufferSize = __library
22727                .get(b"cusolverDnDgesvdaStridedBatched_bufferSize\0")
22728                .map(|sym| *sym)
22729                .expect("Expected symbol in library");
22730            let cusolverDnDgesvdj = __library
22731                .get(b"cusolverDnDgesvdj\0")
22732                .map(|sym| *sym)
22733                .expect("Expected symbol in library");
22734            let cusolverDnDgesvdjBatched = __library
22735                .get(b"cusolverDnDgesvdjBatched\0")
22736                .map(|sym| *sym)
22737                .expect("Expected symbol in library");
22738            let cusolverDnDgesvdjBatched_bufferSize = __library
22739                .get(b"cusolverDnDgesvdjBatched_bufferSize\0")
22740                .map(|sym| *sym)
22741                .expect("Expected symbol in library");
22742            let cusolverDnDgesvdj_bufferSize = __library
22743                .get(b"cusolverDnDgesvdj_bufferSize\0")
22744                .map(|sym| *sym)
22745                .expect("Expected symbol in library");
22746            let cusolverDnDgetrf = __library
22747                .get(b"cusolverDnDgetrf\0")
22748                .map(|sym| *sym)
22749                .expect("Expected symbol in library");
22750            let cusolverDnDgetrf_bufferSize = __library
22751                .get(b"cusolverDnDgetrf_bufferSize\0")
22752                .map(|sym| *sym)
22753                .expect("Expected symbol in library");
22754            let cusolverDnDgetrs = __library
22755                .get(b"cusolverDnDgetrs\0")
22756                .map(|sym| *sym)
22757                .expect("Expected symbol in library");
22758            let cusolverDnDlaswp = __library
22759                .get(b"cusolverDnDlaswp\0")
22760                .map(|sym| *sym)
22761                .expect("Expected symbol in library");
22762            let cusolverDnDlauum = __library
22763                .get(b"cusolverDnDlauum\0")
22764                .map(|sym| *sym)
22765                .expect("Expected symbol in library");
22766            let cusolverDnDlauum_bufferSize = __library
22767                .get(b"cusolverDnDlauum_bufferSize\0")
22768                .map(|sym| *sym)
22769                .expect("Expected symbol in library");
22770            let cusolverDnDorgbr = __library
22771                .get(b"cusolverDnDorgbr\0")
22772                .map(|sym| *sym)
22773                .expect("Expected symbol in library");
22774            let cusolverDnDorgbr_bufferSize = __library
22775                .get(b"cusolverDnDorgbr_bufferSize\0")
22776                .map(|sym| *sym)
22777                .expect("Expected symbol in library");
22778            let cusolverDnDorgqr = __library
22779                .get(b"cusolverDnDorgqr\0")
22780                .map(|sym| *sym)
22781                .expect("Expected symbol in library");
22782            let cusolverDnDorgqr_bufferSize = __library
22783                .get(b"cusolverDnDorgqr_bufferSize\0")
22784                .map(|sym| *sym)
22785                .expect("Expected symbol in library");
22786            let cusolverDnDorgtr = __library
22787                .get(b"cusolverDnDorgtr\0")
22788                .map(|sym| *sym)
22789                .expect("Expected symbol in library");
22790            let cusolverDnDorgtr_bufferSize = __library
22791                .get(b"cusolverDnDorgtr_bufferSize\0")
22792                .map(|sym| *sym)
22793                .expect("Expected symbol in library");
22794            let cusolverDnDormqr = __library
22795                .get(b"cusolverDnDormqr\0")
22796                .map(|sym| *sym)
22797                .expect("Expected symbol in library");
22798            let cusolverDnDormqr_bufferSize = __library
22799                .get(b"cusolverDnDormqr_bufferSize\0")
22800                .map(|sym| *sym)
22801                .expect("Expected symbol in library");
22802            let cusolverDnDormtr = __library
22803                .get(b"cusolverDnDormtr\0")
22804                .map(|sym| *sym)
22805                .expect("Expected symbol in library");
22806            let cusolverDnDormtr_bufferSize = __library
22807                .get(b"cusolverDnDormtr_bufferSize\0")
22808                .map(|sym| *sym)
22809                .expect("Expected symbol in library");
22810            let cusolverDnDpotrf = __library
22811                .get(b"cusolverDnDpotrf\0")
22812                .map(|sym| *sym)
22813                .expect("Expected symbol in library");
22814            let cusolverDnDpotrfBatched = __library
22815                .get(b"cusolverDnDpotrfBatched\0")
22816                .map(|sym| *sym)
22817                .expect("Expected symbol in library");
22818            let cusolverDnDpotrf_bufferSize = __library
22819                .get(b"cusolverDnDpotrf_bufferSize\0")
22820                .map(|sym| *sym)
22821                .expect("Expected symbol in library");
22822            let cusolverDnDpotri = __library
22823                .get(b"cusolverDnDpotri\0")
22824                .map(|sym| *sym)
22825                .expect("Expected symbol in library");
22826            let cusolverDnDpotri_bufferSize = __library
22827                .get(b"cusolverDnDpotri_bufferSize\0")
22828                .map(|sym| *sym)
22829                .expect("Expected symbol in library");
22830            let cusolverDnDpotrs = __library
22831                .get(b"cusolverDnDpotrs\0")
22832                .map(|sym| *sym)
22833                .expect("Expected symbol in library");
22834            let cusolverDnDpotrsBatched = __library
22835                .get(b"cusolverDnDpotrsBatched\0")
22836                .map(|sym| *sym)
22837                .expect("Expected symbol in library");
22838            let cusolverDnDsyevd = __library
22839                .get(b"cusolverDnDsyevd\0")
22840                .map(|sym| *sym)
22841                .expect("Expected symbol in library");
22842            let cusolverDnDsyevd_bufferSize = __library
22843                .get(b"cusolverDnDsyevd_bufferSize\0")
22844                .map(|sym| *sym)
22845                .expect("Expected symbol in library");
22846            let cusolverDnDsyevdx = __library
22847                .get(b"cusolverDnDsyevdx\0")
22848                .map(|sym| *sym)
22849                .expect("Expected symbol in library");
22850            let cusolverDnDsyevdx_bufferSize = __library
22851                .get(b"cusolverDnDsyevdx_bufferSize\0")
22852                .map(|sym| *sym)
22853                .expect("Expected symbol in library");
22854            let cusolverDnDsyevj = __library
22855                .get(b"cusolverDnDsyevj\0")
22856                .map(|sym| *sym)
22857                .expect("Expected symbol in library");
22858            let cusolverDnDsyevjBatched = __library
22859                .get(b"cusolverDnDsyevjBatched\0")
22860                .map(|sym| *sym)
22861                .expect("Expected symbol in library");
22862            let cusolverDnDsyevjBatched_bufferSize = __library
22863                .get(b"cusolverDnDsyevjBatched_bufferSize\0")
22864                .map(|sym| *sym)
22865                .expect("Expected symbol in library");
22866            let cusolverDnDsyevj_bufferSize = __library
22867                .get(b"cusolverDnDsyevj_bufferSize\0")
22868                .map(|sym| *sym)
22869                .expect("Expected symbol in library");
22870            let cusolverDnDsygvd = __library
22871                .get(b"cusolverDnDsygvd\0")
22872                .map(|sym| *sym)
22873                .expect("Expected symbol in library");
22874            let cusolverDnDsygvd_bufferSize = __library
22875                .get(b"cusolverDnDsygvd_bufferSize\0")
22876                .map(|sym| *sym)
22877                .expect("Expected symbol in library");
22878            let cusolverDnDsygvdx = __library
22879                .get(b"cusolverDnDsygvdx\0")
22880                .map(|sym| *sym)
22881                .expect("Expected symbol in library");
22882            let cusolverDnDsygvdx_bufferSize = __library
22883                .get(b"cusolverDnDsygvdx_bufferSize\0")
22884                .map(|sym| *sym)
22885                .expect("Expected symbol in library");
22886            let cusolverDnDsygvj = __library
22887                .get(b"cusolverDnDsygvj\0")
22888                .map(|sym| *sym)
22889                .expect("Expected symbol in library");
22890            let cusolverDnDsygvj_bufferSize = __library
22891                .get(b"cusolverDnDsygvj_bufferSize\0")
22892                .map(|sym| *sym)
22893                .expect("Expected symbol in library");
22894            let cusolverDnDsytrd = __library
22895                .get(b"cusolverDnDsytrd\0")
22896                .map(|sym| *sym)
22897                .expect("Expected symbol in library");
22898            let cusolverDnDsytrd_bufferSize = __library
22899                .get(b"cusolverDnDsytrd_bufferSize\0")
22900                .map(|sym| *sym)
22901                .expect("Expected symbol in library");
22902            let cusolverDnDsytrf = __library
22903                .get(b"cusolverDnDsytrf\0")
22904                .map(|sym| *sym)
22905                .expect("Expected symbol in library");
22906            let cusolverDnDsytrf_bufferSize = __library
22907                .get(b"cusolverDnDsytrf_bufferSize\0")
22908                .map(|sym| *sym)
22909                .expect("Expected symbol in library");
22910            let cusolverDnDsytri = __library
22911                .get(b"cusolverDnDsytri\0")
22912                .map(|sym| *sym)
22913                .expect("Expected symbol in library");
22914            let cusolverDnDsytri_bufferSize = __library
22915                .get(b"cusolverDnDsytri_bufferSize\0")
22916                .map(|sym| *sym)
22917                .expect("Expected symbol in library");
22918            #[cfg(any(
22919                feature = "cuda-11040",
22920                feature = "cuda-11050",
22921                feature = "cuda-11060",
22922                feature = "cuda-11070",
22923                feature = "cuda-11080",
22924                feature = "cuda-12000",
22925                feature = "cuda-12010",
22926                feature = "cuda-12020",
22927                feature = "cuda-12030",
22928                feature = "cuda-12040",
22929                feature = "cuda-12050",
22930                feature = "cuda-12060",
22931                feature = "cuda-12080",
22932                feature = "cuda-12090"
22933            ))]
22934            let cusolverDnGeqrf = __library
22935                .get(b"cusolverDnGeqrf\0")
22936                .map(|sym| *sym)
22937                .expect("Expected symbol in library");
22938            #[cfg(any(
22939                feature = "cuda-11040",
22940                feature = "cuda-11050",
22941                feature = "cuda-11060",
22942                feature = "cuda-11070",
22943                feature = "cuda-11080",
22944                feature = "cuda-12000",
22945                feature = "cuda-12010",
22946                feature = "cuda-12020",
22947                feature = "cuda-12030",
22948                feature = "cuda-12040",
22949                feature = "cuda-12050",
22950                feature = "cuda-12060",
22951                feature = "cuda-12080",
22952                feature = "cuda-12090"
22953            ))]
22954            let cusolverDnGeqrf_bufferSize = __library
22955                .get(b"cusolverDnGeqrf_bufferSize\0")
22956                .map(|sym| *sym)
22957                .expect("Expected symbol in library");
22958            #[cfg(any(
22959                feature = "cuda-11040",
22960                feature = "cuda-11050",
22961                feature = "cuda-11060",
22962                feature = "cuda-11070",
22963                feature = "cuda-11080",
22964                feature = "cuda-12000",
22965                feature = "cuda-12010",
22966                feature = "cuda-12020",
22967                feature = "cuda-12030",
22968                feature = "cuda-12040",
22969                feature = "cuda-12050",
22970                feature = "cuda-12060",
22971                feature = "cuda-12080",
22972                feature = "cuda-12090"
22973            ))]
22974            let cusolverDnGesvd = __library
22975                .get(b"cusolverDnGesvd\0")
22976                .map(|sym| *sym)
22977                .expect("Expected symbol in library");
22978            #[cfg(any(
22979                feature = "cuda-11040",
22980                feature = "cuda-11050",
22981                feature = "cuda-11060",
22982                feature = "cuda-11070",
22983                feature = "cuda-11080",
22984                feature = "cuda-12000",
22985                feature = "cuda-12010",
22986                feature = "cuda-12020",
22987                feature = "cuda-12030",
22988                feature = "cuda-12040",
22989                feature = "cuda-12050",
22990                feature = "cuda-12060",
22991                feature = "cuda-12080",
22992                feature = "cuda-12090"
22993            ))]
22994            let cusolverDnGesvd_bufferSize = __library
22995                .get(b"cusolverDnGesvd_bufferSize\0")
22996                .map(|sym| *sym)
22997                .expect("Expected symbol in library");
22998            #[cfg(any(
22999                feature = "cuda-12020",
23000                feature = "cuda-12030",
23001                feature = "cuda-12040",
23002                feature = "cuda-12050",
23003                feature = "cuda-12060",
23004                feature = "cuda-12080",
23005                feature = "cuda-12090",
23006                feature = "cuda-13000",
23007                feature = "cuda-13010"
23008            ))]
23009            let cusolverDnGetDeterministicMode = __library
23010                .get(b"cusolverDnGetDeterministicMode\0")
23011                .map(|sym| *sym)
23012                .expect("Expected symbol in library");
23013            #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
23014            let cusolverDnGetEmulationStrategy = __library
23015                .get(b"cusolverDnGetEmulationStrategy\0")
23016                .map(|sym| *sym)
23017                .expect("Expected symbol in library");
23018            #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
23019            let cusolverDnGetMathMode = __library
23020                .get(b"cusolverDnGetMathMode\0")
23021                .map(|sym| *sym)
23022                .expect("Expected symbol in library");
23023            let cusolverDnGetStream = __library
23024                .get(b"cusolverDnGetStream\0")
23025                .map(|sym| *sym)
23026                .expect("Expected symbol in library");
23027            #[cfg(any(
23028                feature = "cuda-11040",
23029                feature = "cuda-11050",
23030                feature = "cuda-11060",
23031                feature = "cuda-11070",
23032                feature = "cuda-11080",
23033                feature = "cuda-12000",
23034                feature = "cuda-12010",
23035                feature = "cuda-12020",
23036                feature = "cuda-12030",
23037                feature = "cuda-12040",
23038                feature = "cuda-12050",
23039                feature = "cuda-12060",
23040                feature = "cuda-12080",
23041                feature = "cuda-12090"
23042            ))]
23043            let cusolverDnGetrf = __library
23044                .get(b"cusolverDnGetrf\0")
23045                .map(|sym| *sym)
23046                .expect("Expected symbol in library");
23047            #[cfg(any(
23048                feature = "cuda-11040",
23049                feature = "cuda-11050",
23050                feature = "cuda-11060",
23051                feature = "cuda-11070",
23052                feature = "cuda-11080",
23053                feature = "cuda-12000",
23054                feature = "cuda-12010",
23055                feature = "cuda-12020",
23056                feature = "cuda-12030",
23057                feature = "cuda-12040",
23058                feature = "cuda-12050",
23059                feature = "cuda-12060",
23060                feature = "cuda-12080",
23061                feature = "cuda-12090"
23062            ))]
23063            let cusolverDnGetrf_bufferSize = __library
23064                .get(b"cusolverDnGetrf_bufferSize\0")
23065                .map(|sym| *sym)
23066                .expect("Expected symbol in library");
23067            #[cfg(any(
23068                feature = "cuda-11040",
23069                feature = "cuda-11050",
23070                feature = "cuda-11060",
23071                feature = "cuda-11070",
23072                feature = "cuda-11080",
23073                feature = "cuda-12000",
23074                feature = "cuda-12010",
23075                feature = "cuda-12020",
23076                feature = "cuda-12030",
23077                feature = "cuda-12040",
23078                feature = "cuda-12050",
23079                feature = "cuda-12060",
23080                feature = "cuda-12080",
23081                feature = "cuda-12090"
23082            ))]
23083            let cusolverDnGetrs = __library
23084                .get(b"cusolverDnGetrs\0")
23085                .map(|sym| *sym)
23086                .expect("Expected symbol in library");
23087            let cusolverDnIRSInfosCreate = __library
23088                .get(b"cusolverDnIRSInfosCreate\0")
23089                .map(|sym| *sym)
23090                .expect("Expected symbol in library");
23091            let cusolverDnIRSInfosDestroy = __library
23092                .get(b"cusolverDnIRSInfosDestroy\0")
23093                .map(|sym| *sym)
23094                .expect("Expected symbol in library");
23095            let cusolverDnIRSInfosGetMaxIters = __library
23096                .get(b"cusolverDnIRSInfosGetMaxIters\0")
23097                .map(|sym| *sym)
23098                .expect("Expected symbol in library");
23099            let cusolverDnIRSInfosGetNiters = __library
23100                .get(b"cusolverDnIRSInfosGetNiters\0")
23101                .map(|sym| *sym)
23102                .expect("Expected symbol in library");
23103            let cusolverDnIRSInfosGetOuterNiters = __library
23104                .get(b"cusolverDnIRSInfosGetOuterNiters\0")
23105                .map(|sym| *sym)
23106                .expect("Expected symbol in library");
23107            let cusolverDnIRSInfosGetResidualHistory = __library
23108                .get(b"cusolverDnIRSInfosGetResidualHistory\0")
23109                .map(|sym| *sym)
23110                .expect("Expected symbol in library");
23111            let cusolverDnIRSInfosRequestResidual = __library
23112                .get(b"cusolverDnIRSInfosRequestResidual\0")
23113                .map(|sym| *sym)
23114                .expect("Expected symbol in library");
23115            let cusolverDnIRSParamsCreate = __library
23116                .get(b"cusolverDnIRSParamsCreate\0")
23117                .map(|sym| *sym)
23118                .expect("Expected symbol in library");
23119            let cusolverDnIRSParamsDestroy = __library
23120                .get(b"cusolverDnIRSParamsDestroy\0")
23121                .map(|sym| *sym)
23122                .expect("Expected symbol in library");
23123            let cusolverDnIRSParamsDisableFallback = __library
23124                .get(b"cusolverDnIRSParamsDisableFallback\0")
23125                .map(|sym| *sym)
23126                .expect("Expected symbol in library");
23127            let cusolverDnIRSParamsEnableFallback = __library
23128                .get(b"cusolverDnIRSParamsEnableFallback\0")
23129                .map(|sym| *sym)
23130                .expect("Expected symbol in library");
23131            let cusolverDnIRSParamsGetMaxIters = __library
23132                .get(b"cusolverDnIRSParamsGetMaxIters\0")
23133                .map(|sym| *sym)
23134                .expect("Expected symbol in library");
23135            let cusolverDnIRSParamsSetMaxIters = __library
23136                .get(b"cusolverDnIRSParamsSetMaxIters\0")
23137                .map(|sym| *sym)
23138                .expect("Expected symbol in library");
23139            let cusolverDnIRSParamsSetMaxItersInner = __library
23140                .get(b"cusolverDnIRSParamsSetMaxItersInner\0")
23141                .map(|sym| *sym)
23142                .expect("Expected symbol in library");
23143            let cusolverDnIRSParamsSetRefinementSolver = __library
23144                .get(b"cusolverDnIRSParamsSetRefinementSolver\0")
23145                .map(|sym| *sym)
23146                .expect("Expected symbol in library");
23147            let cusolverDnIRSParamsSetSolverLowestPrecision = __library
23148                .get(b"cusolverDnIRSParamsSetSolverLowestPrecision\0")
23149                .map(|sym| *sym)
23150                .expect("Expected symbol in library");
23151            let cusolverDnIRSParamsSetSolverMainPrecision = __library
23152                .get(b"cusolverDnIRSParamsSetSolverMainPrecision\0")
23153                .map(|sym| *sym)
23154                .expect("Expected symbol in library");
23155            let cusolverDnIRSParamsSetSolverPrecisions = __library
23156                .get(b"cusolverDnIRSParamsSetSolverPrecisions\0")
23157                .map(|sym| *sym)
23158                .expect("Expected symbol in library");
23159            let cusolverDnIRSParamsSetTol = __library
23160                .get(b"cusolverDnIRSParamsSetTol\0")
23161                .map(|sym| *sym)
23162                .expect("Expected symbol in library");
23163            let cusolverDnIRSParamsSetTolInner = __library
23164                .get(b"cusolverDnIRSParamsSetTolInner\0")
23165                .map(|sym| *sym)
23166                .expect("Expected symbol in library");
23167            let cusolverDnIRSXgels = __library
23168                .get(b"cusolverDnIRSXgels\0")
23169                .map(|sym| *sym)
23170                .expect("Expected symbol in library");
23171            let cusolverDnIRSXgels_bufferSize = __library
23172                .get(b"cusolverDnIRSXgels_bufferSize\0")
23173                .map(|sym| *sym)
23174                .expect("Expected symbol in library");
23175            let cusolverDnIRSXgesv = __library
23176                .get(b"cusolverDnIRSXgesv\0")
23177                .map(|sym| *sym)
23178                .expect("Expected symbol in library");
23179            let cusolverDnIRSXgesv_bufferSize = __library
23180                .get(b"cusolverDnIRSXgesv_bufferSize\0")
23181                .map(|sym| *sym)
23182                .expect("Expected symbol in library");
23183            #[cfg(any(
23184                feature = "cuda-11040",
23185                feature = "cuda-11050",
23186                feature = "cuda-11060",
23187                feature = "cuda-11070",
23188                feature = "cuda-11080",
23189                feature = "cuda-12000",
23190                feature = "cuda-12010",
23191                feature = "cuda-12020",
23192                feature = "cuda-12030",
23193                feature = "cuda-12040",
23194                feature = "cuda-12050",
23195                feature = "cuda-12060",
23196                feature = "cuda-12080",
23197                feature = "cuda-12090"
23198            ))]
23199            let cusolverDnPotrf = __library
23200                .get(b"cusolverDnPotrf\0")
23201                .map(|sym| *sym)
23202                .expect("Expected symbol in library");
23203            #[cfg(any(
23204                feature = "cuda-11040",
23205                feature = "cuda-11050",
23206                feature = "cuda-11060",
23207                feature = "cuda-11070",
23208                feature = "cuda-11080",
23209                feature = "cuda-12000",
23210                feature = "cuda-12010",
23211                feature = "cuda-12020",
23212                feature = "cuda-12030",
23213                feature = "cuda-12040",
23214                feature = "cuda-12050",
23215                feature = "cuda-12060",
23216                feature = "cuda-12080",
23217                feature = "cuda-12090"
23218            ))]
23219            let cusolverDnPotrf_bufferSize = __library
23220                .get(b"cusolverDnPotrf_bufferSize\0")
23221                .map(|sym| *sym)
23222                .expect("Expected symbol in library");
23223            #[cfg(any(
23224                feature = "cuda-11040",
23225                feature = "cuda-11050",
23226                feature = "cuda-11060",
23227                feature = "cuda-11070",
23228                feature = "cuda-11080",
23229                feature = "cuda-12000",
23230                feature = "cuda-12010",
23231                feature = "cuda-12020",
23232                feature = "cuda-12030",
23233                feature = "cuda-12040",
23234                feature = "cuda-12050",
23235                feature = "cuda-12060",
23236                feature = "cuda-12080",
23237                feature = "cuda-12090"
23238            ))]
23239            let cusolverDnPotrs = __library
23240                .get(b"cusolverDnPotrs\0")
23241                .map(|sym| *sym)
23242                .expect("Expected symbol in library");
23243            let cusolverDnSBgels = __library
23244                .get(b"cusolverDnSBgels\0")
23245                .map(|sym| *sym)
23246                .expect("Expected symbol in library");
23247            let cusolverDnSBgels_bufferSize = __library
23248                .get(b"cusolverDnSBgels_bufferSize\0")
23249                .map(|sym| *sym)
23250                .expect("Expected symbol in library");
23251            let cusolverDnSBgesv = __library
23252                .get(b"cusolverDnSBgesv\0")
23253                .map(|sym| *sym)
23254                .expect("Expected symbol in library");
23255            let cusolverDnSBgesv_bufferSize = __library
23256                .get(b"cusolverDnSBgesv_bufferSize\0")
23257                .map(|sym| *sym)
23258                .expect("Expected symbol in library");
23259            let cusolverDnSHgels = __library
23260                .get(b"cusolverDnSHgels\0")
23261                .map(|sym| *sym)
23262                .expect("Expected symbol in library");
23263            let cusolverDnSHgels_bufferSize = __library
23264                .get(b"cusolverDnSHgels_bufferSize\0")
23265                .map(|sym| *sym)
23266                .expect("Expected symbol in library");
23267            let cusolverDnSHgesv = __library
23268                .get(b"cusolverDnSHgesv\0")
23269                .map(|sym| *sym)
23270                .expect("Expected symbol in library");
23271            let cusolverDnSHgesv_bufferSize = __library
23272                .get(b"cusolverDnSHgesv_bufferSize\0")
23273                .map(|sym| *sym)
23274                .expect("Expected symbol in library");
23275            let cusolverDnSSgels = __library
23276                .get(b"cusolverDnSSgels\0")
23277                .map(|sym| *sym)
23278                .expect("Expected symbol in library");
23279            let cusolverDnSSgels_bufferSize = __library
23280                .get(b"cusolverDnSSgels_bufferSize\0")
23281                .map(|sym| *sym)
23282                .expect("Expected symbol in library");
23283            let cusolverDnSSgesv = __library
23284                .get(b"cusolverDnSSgesv\0")
23285                .map(|sym| *sym)
23286                .expect("Expected symbol in library");
23287            let cusolverDnSSgesv_bufferSize = __library
23288                .get(b"cusolverDnSSgesv_bufferSize\0")
23289                .map(|sym| *sym)
23290                .expect("Expected symbol in library");
23291            let cusolverDnSXgels = __library
23292                .get(b"cusolverDnSXgels\0")
23293                .map(|sym| *sym)
23294                .expect("Expected symbol in library");
23295            let cusolverDnSXgels_bufferSize = __library
23296                .get(b"cusolverDnSXgels_bufferSize\0")
23297                .map(|sym| *sym)
23298                .expect("Expected symbol in library");
23299            let cusolverDnSXgesv = __library
23300                .get(b"cusolverDnSXgesv\0")
23301                .map(|sym| *sym)
23302                .expect("Expected symbol in library");
23303            let cusolverDnSXgesv_bufferSize = __library
23304                .get(b"cusolverDnSXgesv_bufferSize\0")
23305                .map(|sym| *sym)
23306                .expect("Expected symbol in library");
23307            let cusolverDnSetAdvOptions = __library
23308                .get(b"cusolverDnSetAdvOptions\0")
23309                .map(|sym| *sym)
23310                .expect("Expected symbol in library");
23311            #[cfg(any(
23312                feature = "cuda-12020",
23313                feature = "cuda-12030",
23314                feature = "cuda-12040",
23315                feature = "cuda-12050",
23316                feature = "cuda-12060",
23317                feature = "cuda-12080",
23318                feature = "cuda-12090",
23319                feature = "cuda-13000",
23320                feature = "cuda-13010"
23321            ))]
23322            let cusolverDnSetDeterministicMode = __library
23323                .get(b"cusolverDnSetDeterministicMode\0")
23324                .map(|sym| *sym)
23325                .expect("Expected symbol in library");
23326            #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
23327            let cusolverDnSetEmulationStrategy = __library
23328                .get(b"cusolverDnSetEmulationStrategy\0")
23329                .map(|sym| *sym)
23330                .expect("Expected symbol in library");
23331            #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
23332            let cusolverDnSetMathMode = __library
23333                .get(b"cusolverDnSetMathMode\0")
23334                .map(|sym| *sym)
23335                .expect("Expected symbol in library");
23336            let cusolverDnSetStream = __library
23337                .get(b"cusolverDnSetStream\0")
23338                .map(|sym| *sym)
23339                .expect("Expected symbol in library");
23340            let cusolverDnSgebrd = __library
23341                .get(b"cusolverDnSgebrd\0")
23342                .map(|sym| *sym)
23343                .expect("Expected symbol in library");
23344            let cusolverDnSgebrd_bufferSize = __library
23345                .get(b"cusolverDnSgebrd_bufferSize\0")
23346                .map(|sym| *sym)
23347                .expect("Expected symbol in library");
23348            let cusolverDnSgeqrf = __library
23349                .get(b"cusolverDnSgeqrf\0")
23350                .map(|sym| *sym)
23351                .expect("Expected symbol in library");
23352            let cusolverDnSgeqrf_bufferSize = __library
23353                .get(b"cusolverDnSgeqrf_bufferSize\0")
23354                .map(|sym| *sym)
23355                .expect("Expected symbol in library");
23356            let cusolverDnSgesvd = __library
23357                .get(b"cusolverDnSgesvd\0")
23358                .map(|sym| *sym)
23359                .expect("Expected symbol in library");
23360            let cusolverDnSgesvd_bufferSize = __library
23361                .get(b"cusolverDnSgesvd_bufferSize\0")
23362                .map(|sym| *sym)
23363                .expect("Expected symbol in library");
23364            let cusolverDnSgesvdaStridedBatched = __library
23365                .get(b"cusolverDnSgesvdaStridedBatched\0")
23366                .map(|sym| *sym)
23367                .expect("Expected symbol in library");
23368            let cusolverDnSgesvdaStridedBatched_bufferSize = __library
23369                .get(b"cusolverDnSgesvdaStridedBatched_bufferSize\0")
23370                .map(|sym| *sym)
23371                .expect("Expected symbol in library");
23372            let cusolverDnSgesvdj = __library
23373                .get(b"cusolverDnSgesvdj\0")
23374                .map(|sym| *sym)
23375                .expect("Expected symbol in library");
23376            let cusolverDnSgesvdjBatched = __library
23377                .get(b"cusolverDnSgesvdjBatched\0")
23378                .map(|sym| *sym)
23379                .expect("Expected symbol in library");
23380            let cusolverDnSgesvdjBatched_bufferSize = __library
23381                .get(b"cusolverDnSgesvdjBatched_bufferSize\0")
23382                .map(|sym| *sym)
23383                .expect("Expected symbol in library");
23384            let cusolverDnSgesvdj_bufferSize = __library
23385                .get(b"cusolverDnSgesvdj_bufferSize\0")
23386                .map(|sym| *sym)
23387                .expect("Expected symbol in library");
23388            let cusolverDnSgetrf = __library
23389                .get(b"cusolverDnSgetrf\0")
23390                .map(|sym| *sym)
23391                .expect("Expected symbol in library");
23392            let cusolverDnSgetrf_bufferSize = __library
23393                .get(b"cusolverDnSgetrf_bufferSize\0")
23394                .map(|sym| *sym)
23395                .expect("Expected symbol in library");
23396            let cusolverDnSgetrs = __library
23397                .get(b"cusolverDnSgetrs\0")
23398                .map(|sym| *sym)
23399                .expect("Expected symbol in library");
23400            let cusolverDnSlaswp = __library
23401                .get(b"cusolverDnSlaswp\0")
23402                .map(|sym| *sym)
23403                .expect("Expected symbol in library");
23404            let cusolverDnSlauum = __library
23405                .get(b"cusolverDnSlauum\0")
23406                .map(|sym| *sym)
23407                .expect("Expected symbol in library");
23408            let cusolverDnSlauum_bufferSize = __library
23409                .get(b"cusolverDnSlauum_bufferSize\0")
23410                .map(|sym| *sym)
23411                .expect("Expected symbol in library");
23412            let cusolverDnSorgbr = __library
23413                .get(b"cusolverDnSorgbr\0")
23414                .map(|sym| *sym)
23415                .expect("Expected symbol in library");
23416            let cusolverDnSorgbr_bufferSize = __library
23417                .get(b"cusolverDnSorgbr_bufferSize\0")
23418                .map(|sym| *sym)
23419                .expect("Expected symbol in library");
23420            let cusolverDnSorgqr = __library
23421                .get(b"cusolverDnSorgqr\0")
23422                .map(|sym| *sym)
23423                .expect("Expected symbol in library");
23424            let cusolverDnSorgqr_bufferSize = __library
23425                .get(b"cusolverDnSorgqr_bufferSize\0")
23426                .map(|sym| *sym)
23427                .expect("Expected symbol in library");
23428            let cusolverDnSorgtr = __library
23429                .get(b"cusolverDnSorgtr\0")
23430                .map(|sym| *sym)
23431                .expect("Expected symbol in library");
23432            let cusolverDnSorgtr_bufferSize = __library
23433                .get(b"cusolverDnSorgtr_bufferSize\0")
23434                .map(|sym| *sym)
23435                .expect("Expected symbol in library");
23436            let cusolverDnSormqr = __library
23437                .get(b"cusolverDnSormqr\0")
23438                .map(|sym| *sym)
23439                .expect("Expected symbol in library");
23440            let cusolverDnSormqr_bufferSize = __library
23441                .get(b"cusolverDnSormqr_bufferSize\0")
23442                .map(|sym| *sym)
23443                .expect("Expected symbol in library");
23444            let cusolverDnSormtr = __library
23445                .get(b"cusolverDnSormtr\0")
23446                .map(|sym| *sym)
23447                .expect("Expected symbol in library");
23448            let cusolverDnSormtr_bufferSize = __library
23449                .get(b"cusolverDnSormtr_bufferSize\0")
23450                .map(|sym| *sym)
23451                .expect("Expected symbol in library");
23452            let cusolverDnSpotrf = __library
23453                .get(b"cusolverDnSpotrf\0")
23454                .map(|sym| *sym)
23455                .expect("Expected symbol in library");
23456            let cusolverDnSpotrfBatched = __library
23457                .get(b"cusolverDnSpotrfBatched\0")
23458                .map(|sym| *sym)
23459                .expect("Expected symbol in library");
23460            let cusolverDnSpotrf_bufferSize = __library
23461                .get(b"cusolverDnSpotrf_bufferSize\0")
23462                .map(|sym| *sym)
23463                .expect("Expected symbol in library");
23464            let cusolverDnSpotri = __library
23465                .get(b"cusolverDnSpotri\0")
23466                .map(|sym| *sym)
23467                .expect("Expected symbol in library");
23468            let cusolverDnSpotri_bufferSize = __library
23469                .get(b"cusolverDnSpotri_bufferSize\0")
23470                .map(|sym| *sym)
23471                .expect("Expected symbol in library");
23472            let cusolverDnSpotrs = __library
23473                .get(b"cusolverDnSpotrs\0")
23474                .map(|sym| *sym)
23475                .expect("Expected symbol in library");
23476            let cusolverDnSpotrsBatched = __library
23477                .get(b"cusolverDnSpotrsBatched\0")
23478                .map(|sym| *sym)
23479                .expect("Expected symbol in library");
23480            let cusolverDnSsyevd = __library
23481                .get(b"cusolverDnSsyevd\0")
23482                .map(|sym| *sym)
23483                .expect("Expected symbol in library");
23484            let cusolverDnSsyevd_bufferSize = __library
23485                .get(b"cusolverDnSsyevd_bufferSize\0")
23486                .map(|sym| *sym)
23487                .expect("Expected symbol in library");
23488            let cusolverDnSsyevdx = __library
23489                .get(b"cusolverDnSsyevdx\0")
23490                .map(|sym| *sym)
23491                .expect("Expected symbol in library");
23492            let cusolverDnSsyevdx_bufferSize = __library
23493                .get(b"cusolverDnSsyevdx_bufferSize\0")
23494                .map(|sym| *sym)
23495                .expect("Expected symbol in library");
23496            let cusolverDnSsyevj = __library
23497                .get(b"cusolverDnSsyevj\0")
23498                .map(|sym| *sym)
23499                .expect("Expected symbol in library");
23500            let cusolverDnSsyevjBatched = __library
23501                .get(b"cusolverDnSsyevjBatched\0")
23502                .map(|sym| *sym)
23503                .expect("Expected symbol in library");
23504            let cusolverDnSsyevjBatched_bufferSize = __library
23505                .get(b"cusolverDnSsyevjBatched_bufferSize\0")
23506                .map(|sym| *sym)
23507                .expect("Expected symbol in library");
23508            let cusolverDnSsyevj_bufferSize = __library
23509                .get(b"cusolverDnSsyevj_bufferSize\0")
23510                .map(|sym| *sym)
23511                .expect("Expected symbol in library");
23512            let cusolverDnSsygvd = __library
23513                .get(b"cusolverDnSsygvd\0")
23514                .map(|sym| *sym)
23515                .expect("Expected symbol in library");
23516            let cusolverDnSsygvd_bufferSize = __library
23517                .get(b"cusolverDnSsygvd_bufferSize\0")
23518                .map(|sym| *sym)
23519                .expect("Expected symbol in library");
23520            let cusolverDnSsygvdx = __library
23521                .get(b"cusolverDnSsygvdx\0")
23522                .map(|sym| *sym)
23523                .expect("Expected symbol in library");
23524            let cusolverDnSsygvdx_bufferSize = __library
23525                .get(b"cusolverDnSsygvdx_bufferSize\0")
23526                .map(|sym| *sym)
23527                .expect("Expected symbol in library");
23528            let cusolverDnSsygvj = __library
23529                .get(b"cusolverDnSsygvj\0")
23530                .map(|sym| *sym)
23531                .expect("Expected symbol in library");
23532            let cusolverDnSsygvj_bufferSize = __library
23533                .get(b"cusolverDnSsygvj_bufferSize\0")
23534                .map(|sym| *sym)
23535                .expect("Expected symbol in library");
23536            let cusolverDnSsytrd = __library
23537                .get(b"cusolverDnSsytrd\0")
23538                .map(|sym| *sym)
23539                .expect("Expected symbol in library");
23540            let cusolverDnSsytrd_bufferSize = __library
23541                .get(b"cusolverDnSsytrd_bufferSize\0")
23542                .map(|sym| *sym)
23543                .expect("Expected symbol in library");
23544            let cusolverDnSsytrf = __library
23545                .get(b"cusolverDnSsytrf\0")
23546                .map(|sym| *sym)
23547                .expect("Expected symbol in library");
23548            let cusolverDnSsytrf_bufferSize = __library
23549                .get(b"cusolverDnSsytrf_bufferSize\0")
23550                .map(|sym| *sym)
23551                .expect("Expected symbol in library");
23552            let cusolverDnSsytri = __library
23553                .get(b"cusolverDnSsytri\0")
23554                .map(|sym| *sym)
23555                .expect("Expected symbol in library");
23556            let cusolverDnSsytri_bufferSize = __library
23557                .get(b"cusolverDnSsytri_bufferSize\0")
23558                .map(|sym| *sym)
23559                .expect("Expected symbol in library");
23560            #[cfg(any(
23561                feature = "cuda-11040",
23562                feature = "cuda-11050",
23563                feature = "cuda-11060",
23564                feature = "cuda-11070",
23565                feature = "cuda-11080",
23566                feature = "cuda-12000",
23567                feature = "cuda-12010",
23568                feature = "cuda-12020",
23569                feature = "cuda-12030",
23570                feature = "cuda-12040",
23571                feature = "cuda-12050",
23572                feature = "cuda-12060",
23573                feature = "cuda-12080",
23574                feature = "cuda-12090"
23575            ))]
23576            let cusolverDnSyevd = __library
23577                .get(b"cusolverDnSyevd\0")
23578                .map(|sym| *sym)
23579                .expect("Expected symbol in library");
23580            #[cfg(any(
23581                feature = "cuda-11040",
23582                feature = "cuda-11050",
23583                feature = "cuda-11060",
23584                feature = "cuda-11070",
23585                feature = "cuda-11080",
23586                feature = "cuda-12000",
23587                feature = "cuda-12010",
23588                feature = "cuda-12020",
23589                feature = "cuda-12030",
23590                feature = "cuda-12040",
23591                feature = "cuda-12050",
23592                feature = "cuda-12060",
23593                feature = "cuda-12080",
23594                feature = "cuda-12090"
23595            ))]
23596            let cusolverDnSyevd_bufferSize = __library
23597                .get(b"cusolverDnSyevd_bufferSize\0")
23598                .map(|sym| *sym)
23599                .expect("Expected symbol in library");
23600            #[cfg(any(
23601                feature = "cuda-11040",
23602                feature = "cuda-11050",
23603                feature = "cuda-11060",
23604                feature = "cuda-11070",
23605                feature = "cuda-11080",
23606                feature = "cuda-12000",
23607                feature = "cuda-12010",
23608                feature = "cuda-12020",
23609                feature = "cuda-12030",
23610                feature = "cuda-12040",
23611                feature = "cuda-12050",
23612                feature = "cuda-12060",
23613                feature = "cuda-12080",
23614                feature = "cuda-12090"
23615            ))]
23616            let cusolverDnSyevdx = __library
23617                .get(b"cusolverDnSyevdx\0")
23618                .map(|sym| *sym)
23619                .expect("Expected symbol in library");
23620            #[cfg(any(
23621                feature = "cuda-11040",
23622                feature = "cuda-11050",
23623                feature = "cuda-11060",
23624                feature = "cuda-11070",
23625                feature = "cuda-11080",
23626                feature = "cuda-12000",
23627                feature = "cuda-12010",
23628                feature = "cuda-12020",
23629                feature = "cuda-12030",
23630                feature = "cuda-12040",
23631                feature = "cuda-12050",
23632                feature = "cuda-12060",
23633                feature = "cuda-12080",
23634                feature = "cuda-12090"
23635            ))]
23636            let cusolverDnSyevdx_bufferSize = __library
23637                .get(b"cusolverDnSyevdx_bufferSize\0")
23638                .map(|sym| *sym)
23639                .expect("Expected symbol in library");
23640            #[cfg(any(
23641                feature = "cuda-12060",
23642                feature = "cuda-12080",
23643                feature = "cuda-12090",
23644                feature = "cuda-13000",
23645                feature = "cuda-13010"
23646            ))]
23647            let cusolverDnXgeev = __library
23648                .get(b"cusolverDnXgeev\0")
23649                .map(|sym| *sym)
23650                .expect("Expected symbol in library");
23651            #[cfg(any(
23652                feature = "cuda-12060",
23653                feature = "cuda-12080",
23654                feature = "cuda-12090",
23655                feature = "cuda-13000",
23656                feature = "cuda-13010"
23657            ))]
23658            let cusolverDnXgeev_bufferSize = __library
23659                .get(b"cusolverDnXgeev_bufferSize\0")
23660                .map(|sym| *sym)
23661                .expect("Expected symbol in library");
23662            let cusolverDnXgeqrf = __library
23663                .get(b"cusolverDnXgeqrf\0")
23664                .map(|sym| *sym)
23665                .expect("Expected symbol in library");
23666            let cusolverDnXgeqrf_bufferSize = __library
23667                .get(b"cusolverDnXgeqrf_bufferSize\0")
23668                .map(|sym| *sym)
23669                .expect("Expected symbol in library");
23670            let cusolverDnXgesvd = __library
23671                .get(b"cusolverDnXgesvd\0")
23672                .map(|sym| *sym)
23673                .expect("Expected symbol in library");
23674            let cusolverDnXgesvd_bufferSize = __library
23675                .get(b"cusolverDnXgesvd_bufferSize\0")
23676                .map(|sym| *sym)
23677                .expect("Expected symbol in library");
23678            let cusolverDnXgesvdjGetResidual = __library
23679                .get(b"cusolverDnXgesvdjGetResidual\0")
23680                .map(|sym| *sym)
23681                .expect("Expected symbol in library");
23682            let cusolverDnXgesvdjGetSweeps = __library
23683                .get(b"cusolverDnXgesvdjGetSweeps\0")
23684                .map(|sym| *sym)
23685                .expect("Expected symbol in library");
23686            let cusolverDnXgesvdjSetMaxSweeps = __library
23687                .get(b"cusolverDnXgesvdjSetMaxSweeps\0")
23688                .map(|sym| *sym)
23689                .expect("Expected symbol in library");
23690            let cusolverDnXgesvdjSetSortEig = __library
23691                .get(b"cusolverDnXgesvdjSetSortEig\0")
23692                .map(|sym| *sym)
23693                .expect("Expected symbol in library");
23694            let cusolverDnXgesvdjSetTolerance = __library
23695                .get(b"cusolverDnXgesvdjSetTolerance\0")
23696                .map(|sym| *sym)
23697                .expect("Expected symbol in library");
23698            let cusolverDnXgesvdp = __library
23699                .get(b"cusolverDnXgesvdp\0")
23700                .map(|sym| *sym)
23701                .expect("Expected symbol in library");
23702            let cusolverDnXgesvdp_bufferSize = __library
23703                .get(b"cusolverDnXgesvdp_bufferSize\0")
23704                .map(|sym| *sym)
23705                .expect("Expected symbol in library");
23706            let cusolverDnXgesvdr = __library
23707                .get(b"cusolverDnXgesvdr\0")
23708                .map(|sym| *sym)
23709                .expect("Expected symbol in library");
23710            let cusolverDnXgesvdr_bufferSize = __library
23711                .get(b"cusolverDnXgesvdr_bufferSize\0")
23712                .map(|sym| *sym)
23713                .expect("Expected symbol in library");
23714            let cusolverDnXgetrf = __library
23715                .get(b"cusolverDnXgetrf\0")
23716                .map(|sym| *sym)
23717                .expect("Expected symbol in library");
23718            let cusolverDnXgetrf_bufferSize = __library
23719                .get(b"cusolverDnXgetrf_bufferSize\0")
23720                .map(|sym| *sym)
23721                .expect("Expected symbol in library");
23722            let cusolverDnXgetrs = __library
23723                .get(b"cusolverDnXgetrs\0")
23724                .map(|sym| *sym)
23725                .expect("Expected symbol in library");
23726            #[cfg(any(feature = "cuda-12040"))]
23727            let cusolverDnXlarft = __library
23728                .get(b"cusolverDnXlarft\0")
23729                .map(|sym| *sym)
23730                .expect("Expected symbol in library");
23731            #[cfg(any(
23732                feature = "cuda-12050",
23733                feature = "cuda-12060",
23734                feature = "cuda-12080",
23735                feature = "cuda-12090",
23736                feature = "cuda-13000",
23737                feature = "cuda-13010"
23738            ))]
23739            let cusolverDnXlarft = __library
23740                .get(b"cusolverDnXlarft\0")
23741                .map(|sym| *sym)
23742                .expect("Expected symbol in library");
23743            #[cfg(any(feature = "cuda-12040"))]
23744            let cusolverDnXlarft_bufferSize = __library
23745                .get(b"cusolverDnXlarft_bufferSize\0")
23746                .map(|sym| *sym)
23747                .expect("Expected symbol in library");
23748            #[cfg(any(
23749                feature = "cuda-12050",
23750                feature = "cuda-12060",
23751                feature = "cuda-12080",
23752                feature = "cuda-12090",
23753                feature = "cuda-13000",
23754                feature = "cuda-13010"
23755            ))]
23756            let cusolverDnXlarft_bufferSize = __library
23757                .get(b"cusolverDnXlarft_bufferSize\0")
23758                .map(|sym| *sym)
23759                .expect("Expected symbol in library");
23760            let cusolverDnXpotrf = __library
23761                .get(b"cusolverDnXpotrf\0")
23762                .map(|sym| *sym)
23763                .expect("Expected symbol in library");
23764            let cusolverDnXpotrf_bufferSize = __library
23765                .get(b"cusolverDnXpotrf_bufferSize\0")
23766                .map(|sym| *sym)
23767                .expect("Expected symbol in library");
23768            let cusolverDnXpotrs = __library
23769                .get(b"cusolverDnXpotrs\0")
23770                .map(|sym| *sym)
23771                .expect("Expected symbol in library");
23772            #[cfg(any(
23773                feature = "cuda-12060",
23774                feature = "cuda-12080",
23775                feature = "cuda-12090",
23776                feature = "cuda-13000",
23777                feature = "cuda-13010"
23778            ))]
23779            let cusolverDnXsyevBatched = __library
23780                .get(b"cusolverDnXsyevBatched\0")
23781                .map(|sym| *sym)
23782                .expect("Expected symbol in library");
23783            #[cfg(any(
23784                feature = "cuda-12060",
23785                feature = "cuda-12080",
23786                feature = "cuda-12090",
23787                feature = "cuda-13000",
23788                feature = "cuda-13010"
23789            ))]
23790            let cusolverDnXsyevBatched_bufferSize = __library
23791                .get(b"cusolverDnXsyevBatched_bufferSize\0")
23792                .map(|sym| *sym)
23793                .expect("Expected symbol in library");
23794            let cusolverDnXsyevd = __library
23795                .get(b"cusolverDnXsyevd\0")
23796                .map(|sym| *sym)
23797                .expect("Expected symbol in library");
23798            let cusolverDnXsyevd_bufferSize = __library
23799                .get(b"cusolverDnXsyevd_bufferSize\0")
23800                .map(|sym| *sym)
23801                .expect("Expected symbol in library");
23802            let cusolverDnXsyevdx = __library
23803                .get(b"cusolverDnXsyevdx\0")
23804                .map(|sym| *sym)
23805                .expect("Expected symbol in library");
23806            let cusolverDnXsyevdx_bufferSize = __library
23807                .get(b"cusolverDnXsyevdx_bufferSize\0")
23808                .map(|sym| *sym)
23809                .expect("Expected symbol in library");
23810            let cusolverDnXsyevjGetResidual = __library
23811                .get(b"cusolverDnXsyevjGetResidual\0")
23812                .map(|sym| *sym)
23813                .expect("Expected symbol in library");
23814            let cusolverDnXsyevjGetSweeps = __library
23815                .get(b"cusolverDnXsyevjGetSweeps\0")
23816                .map(|sym| *sym)
23817                .expect("Expected symbol in library");
23818            let cusolverDnXsyevjSetMaxSweeps = __library
23819                .get(b"cusolverDnXsyevjSetMaxSweeps\0")
23820                .map(|sym| *sym)
23821                .expect("Expected symbol in library");
23822            let cusolverDnXsyevjSetSortEig = __library
23823                .get(b"cusolverDnXsyevjSetSortEig\0")
23824                .map(|sym| *sym)
23825                .expect("Expected symbol in library");
23826            let cusolverDnXsyevjSetTolerance = __library
23827                .get(b"cusolverDnXsyevjSetTolerance\0")
23828                .map(|sym| *sym)
23829                .expect("Expected symbol in library");
23830            let cusolverDnXsytrs = __library
23831                .get(b"cusolverDnXsytrs\0")
23832                .map(|sym| *sym)
23833                .expect("Expected symbol in library");
23834            let cusolverDnXsytrs_bufferSize = __library
23835                .get(b"cusolverDnXsytrs_bufferSize\0")
23836                .map(|sym| *sym)
23837                .expect("Expected symbol in library");
23838            let cusolverDnXtrtri = __library
23839                .get(b"cusolverDnXtrtri\0")
23840                .map(|sym| *sym)
23841                .expect("Expected symbol in library");
23842            let cusolverDnXtrtri_bufferSize = __library
23843                .get(b"cusolverDnXtrtri_bufferSize\0")
23844                .map(|sym| *sym)
23845                .expect("Expected symbol in library");
23846            let cusolverDnZCgels = __library
23847                .get(b"cusolverDnZCgels\0")
23848                .map(|sym| *sym)
23849                .expect("Expected symbol in library");
23850            let cusolverDnZCgels_bufferSize = __library
23851                .get(b"cusolverDnZCgels_bufferSize\0")
23852                .map(|sym| *sym)
23853                .expect("Expected symbol in library");
23854            let cusolverDnZCgesv = __library
23855                .get(b"cusolverDnZCgesv\0")
23856                .map(|sym| *sym)
23857                .expect("Expected symbol in library");
23858            let cusolverDnZCgesv_bufferSize = __library
23859                .get(b"cusolverDnZCgesv_bufferSize\0")
23860                .map(|sym| *sym)
23861                .expect("Expected symbol in library");
23862            let cusolverDnZEgels = __library
23863                .get(b"cusolverDnZEgels\0")
23864                .map(|sym| *sym)
23865                .expect("Expected symbol in library");
23866            let cusolverDnZEgels_bufferSize = __library
23867                .get(b"cusolverDnZEgels_bufferSize\0")
23868                .map(|sym| *sym)
23869                .expect("Expected symbol in library");
23870            let cusolverDnZEgesv = __library
23871                .get(b"cusolverDnZEgesv\0")
23872                .map(|sym| *sym)
23873                .expect("Expected symbol in library");
23874            let cusolverDnZEgesv_bufferSize = __library
23875                .get(b"cusolverDnZEgesv_bufferSize\0")
23876                .map(|sym| *sym)
23877                .expect("Expected symbol in library");
23878            let cusolverDnZKgels = __library
23879                .get(b"cusolverDnZKgels\0")
23880                .map(|sym| *sym)
23881                .expect("Expected symbol in library");
23882            let cusolverDnZKgels_bufferSize = __library
23883                .get(b"cusolverDnZKgels_bufferSize\0")
23884                .map(|sym| *sym)
23885                .expect("Expected symbol in library");
23886            let cusolverDnZKgesv = __library
23887                .get(b"cusolverDnZKgesv\0")
23888                .map(|sym| *sym)
23889                .expect("Expected symbol in library");
23890            let cusolverDnZKgesv_bufferSize = __library
23891                .get(b"cusolverDnZKgesv_bufferSize\0")
23892                .map(|sym| *sym)
23893                .expect("Expected symbol in library");
23894            let cusolverDnZYgels = __library
23895                .get(b"cusolverDnZYgels\0")
23896                .map(|sym| *sym)
23897                .expect("Expected symbol in library");
23898            let cusolverDnZYgels_bufferSize = __library
23899                .get(b"cusolverDnZYgels_bufferSize\0")
23900                .map(|sym| *sym)
23901                .expect("Expected symbol in library");
23902            let cusolverDnZYgesv = __library
23903                .get(b"cusolverDnZYgesv\0")
23904                .map(|sym| *sym)
23905                .expect("Expected symbol in library");
23906            let cusolverDnZYgesv_bufferSize = __library
23907                .get(b"cusolverDnZYgesv_bufferSize\0")
23908                .map(|sym| *sym)
23909                .expect("Expected symbol in library");
23910            let cusolverDnZZgels = __library
23911                .get(b"cusolverDnZZgels\0")
23912                .map(|sym| *sym)
23913                .expect("Expected symbol in library");
23914            let cusolverDnZZgels_bufferSize = __library
23915                .get(b"cusolverDnZZgels_bufferSize\0")
23916                .map(|sym| *sym)
23917                .expect("Expected symbol in library");
23918            let cusolverDnZZgesv = __library
23919                .get(b"cusolverDnZZgesv\0")
23920                .map(|sym| *sym)
23921                .expect("Expected symbol in library");
23922            let cusolverDnZZgesv_bufferSize = __library
23923                .get(b"cusolverDnZZgesv_bufferSize\0")
23924                .map(|sym| *sym)
23925                .expect("Expected symbol in library");
23926            let cusolverDnZgebrd = __library
23927                .get(b"cusolverDnZgebrd\0")
23928                .map(|sym| *sym)
23929                .expect("Expected symbol in library");
23930            let cusolverDnZgebrd_bufferSize = __library
23931                .get(b"cusolverDnZgebrd_bufferSize\0")
23932                .map(|sym| *sym)
23933                .expect("Expected symbol in library");
23934            let cusolverDnZgeqrf = __library
23935                .get(b"cusolverDnZgeqrf\0")
23936                .map(|sym| *sym)
23937                .expect("Expected symbol in library");
23938            let cusolverDnZgeqrf_bufferSize = __library
23939                .get(b"cusolverDnZgeqrf_bufferSize\0")
23940                .map(|sym| *sym)
23941                .expect("Expected symbol in library");
23942            let cusolverDnZgesvd = __library
23943                .get(b"cusolverDnZgesvd\0")
23944                .map(|sym| *sym)
23945                .expect("Expected symbol in library");
23946            let cusolverDnZgesvd_bufferSize = __library
23947                .get(b"cusolverDnZgesvd_bufferSize\0")
23948                .map(|sym| *sym)
23949                .expect("Expected symbol in library");
23950            let cusolverDnZgesvdaStridedBatched = __library
23951                .get(b"cusolverDnZgesvdaStridedBatched\0")
23952                .map(|sym| *sym)
23953                .expect("Expected symbol in library");
23954            let cusolverDnZgesvdaStridedBatched_bufferSize = __library
23955                .get(b"cusolverDnZgesvdaStridedBatched_bufferSize\0")
23956                .map(|sym| *sym)
23957                .expect("Expected symbol in library");
23958            let cusolverDnZgesvdj = __library
23959                .get(b"cusolverDnZgesvdj\0")
23960                .map(|sym| *sym)
23961                .expect("Expected symbol in library");
23962            let cusolverDnZgesvdjBatched = __library
23963                .get(b"cusolverDnZgesvdjBatched\0")
23964                .map(|sym| *sym)
23965                .expect("Expected symbol in library");
23966            let cusolverDnZgesvdjBatched_bufferSize = __library
23967                .get(b"cusolverDnZgesvdjBatched_bufferSize\0")
23968                .map(|sym| *sym)
23969                .expect("Expected symbol in library");
23970            let cusolverDnZgesvdj_bufferSize = __library
23971                .get(b"cusolverDnZgesvdj_bufferSize\0")
23972                .map(|sym| *sym)
23973                .expect("Expected symbol in library");
23974            let cusolverDnZgetrf = __library
23975                .get(b"cusolverDnZgetrf\0")
23976                .map(|sym| *sym)
23977                .expect("Expected symbol in library");
23978            let cusolverDnZgetrf_bufferSize = __library
23979                .get(b"cusolverDnZgetrf_bufferSize\0")
23980                .map(|sym| *sym)
23981                .expect("Expected symbol in library");
23982            let cusolverDnZgetrs = __library
23983                .get(b"cusolverDnZgetrs\0")
23984                .map(|sym| *sym)
23985                .expect("Expected symbol in library");
23986            let cusolverDnZheevd = __library
23987                .get(b"cusolverDnZheevd\0")
23988                .map(|sym| *sym)
23989                .expect("Expected symbol in library");
23990            let cusolverDnZheevd_bufferSize = __library
23991                .get(b"cusolverDnZheevd_bufferSize\0")
23992                .map(|sym| *sym)
23993                .expect("Expected symbol in library");
23994            let cusolverDnZheevdx = __library
23995                .get(b"cusolverDnZheevdx\0")
23996                .map(|sym| *sym)
23997                .expect("Expected symbol in library");
23998            let cusolverDnZheevdx_bufferSize = __library
23999                .get(b"cusolverDnZheevdx_bufferSize\0")
24000                .map(|sym| *sym)
24001                .expect("Expected symbol in library");
24002            let cusolverDnZheevj = __library
24003                .get(b"cusolverDnZheevj\0")
24004                .map(|sym| *sym)
24005                .expect("Expected symbol in library");
24006            let cusolverDnZheevjBatched = __library
24007                .get(b"cusolverDnZheevjBatched\0")
24008                .map(|sym| *sym)
24009                .expect("Expected symbol in library");
24010            let cusolverDnZheevjBatched_bufferSize = __library
24011                .get(b"cusolverDnZheevjBatched_bufferSize\0")
24012                .map(|sym| *sym)
24013                .expect("Expected symbol in library");
24014            let cusolverDnZheevj_bufferSize = __library
24015                .get(b"cusolverDnZheevj_bufferSize\0")
24016                .map(|sym| *sym)
24017                .expect("Expected symbol in library");
24018            let cusolverDnZhegvd = __library
24019                .get(b"cusolverDnZhegvd\0")
24020                .map(|sym| *sym)
24021                .expect("Expected symbol in library");
24022            let cusolverDnZhegvd_bufferSize = __library
24023                .get(b"cusolverDnZhegvd_bufferSize\0")
24024                .map(|sym| *sym)
24025                .expect("Expected symbol in library");
24026            let cusolverDnZhegvdx = __library
24027                .get(b"cusolverDnZhegvdx\0")
24028                .map(|sym| *sym)
24029                .expect("Expected symbol in library");
24030            let cusolverDnZhegvdx_bufferSize = __library
24031                .get(b"cusolverDnZhegvdx_bufferSize\0")
24032                .map(|sym| *sym)
24033                .expect("Expected symbol in library");
24034            let cusolverDnZhegvj = __library
24035                .get(b"cusolverDnZhegvj\0")
24036                .map(|sym| *sym)
24037                .expect("Expected symbol in library");
24038            let cusolverDnZhegvj_bufferSize = __library
24039                .get(b"cusolverDnZhegvj_bufferSize\0")
24040                .map(|sym| *sym)
24041                .expect("Expected symbol in library");
24042            let cusolverDnZhetrd = __library
24043                .get(b"cusolverDnZhetrd\0")
24044                .map(|sym| *sym)
24045                .expect("Expected symbol in library");
24046            let cusolverDnZhetrd_bufferSize = __library
24047                .get(b"cusolverDnZhetrd_bufferSize\0")
24048                .map(|sym| *sym)
24049                .expect("Expected symbol in library");
24050            let cusolverDnZlaswp = __library
24051                .get(b"cusolverDnZlaswp\0")
24052                .map(|sym| *sym)
24053                .expect("Expected symbol in library");
24054            let cusolverDnZlauum = __library
24055                .get(b"cusolverDnZlauum\0")
24056                .map(|sym| *sym)
24057                .expect("Expected symbol in library");
24058            let cusolverDnZlauum_bufferSize = __library
24059                .get(b"cusolverDnZlauum_bufferSize\0")
24060                .map(|sym| *sym)
24061                .expect("Expected symbol in library");
24062            let cusolverDnZpotrf = __library
24063                .get(b"cusolverDnZpotrf\0")
24064                .map(|sym| *sym)
24065                .expect("Expected symbol in library");
24066            let cusolverDnZpotrfBatched = __library
24067                .get(b"cusolverDnZpotrfBatched\0")
24068                .map(|sym| *sym)
24069                .expect("Expected symbol in library");
24070            let cusolverDnZpotrf_bufferSize = __library
24071                .get(b"cusolverDnZpotrf_bufferSize\0")
24072                .map(|sym| *sym)
24073                .expect("Expected symbol in library");
24074            let cusolverDnZpotri = __library
24075                .get(b"cusolverDnZpotri\0")
24076                .map(|sym| *sym)
24077                .expect("Expected symbol in library");
24078            let cusolverDnZpotri_bufferSize = __library
24079                .get(b"cusolverDnZpotri_bufferSize\0")
24080                .map(|sym| *sym)
24081                .expect("Expected symbol in library");
24082            let cusolverDnZpotrs = __library
24083                .get(b"cusolverDnZpotrs\0")
24084                .map(|sym| *sym)
24085                .expect("Expected symbol in library");
24086            let cusolverDnZpotrsBatched = __library
24087                .get(b"cusolverDnZpotrsBatched\0")
24088                .map(|sym| *sym)
24089                .expect("Expected symbol in library");
24090            let cusolverDnZsytrf = __library
24091                .get(b"cusolverDnZsytrf\0")
24092                .map(|sym| *sym)
24093                .expect("Expected symbol in library");
24094            let cusolverDnZsytrf_bufferSize = __library
24095                .get(b"cusolverDnZsytrf_bufferSize\0")
24096                .map(|sym| *sym)
24097                .expect("Expected symbol in library");
24098            let cusolverDnZsytri = __library
24099                .get(b"cusolverDnZsytri\0")
24100                .map(|sym| *sym)
24101                .expect("Expected symbol in library");
24102            let cusolverDnZsytri_bufferSize = __library
24103                .get(b"cusolverDnZsytri_bufferSize\0")
24104                .map(|sym| *sym)
24105                .expect("Expected symbol in library");
24106            let cusolverDnZungbr = __library
24107                .get(b"cusolverDnZungbr\0")
24108                .map(|sym| *sym)
24109                .expect("Expected symbol in library");
24110            let cusolverDnZungbr_bufferSize = __library
24111                .get(b"cusolverDnZungbr_bufferSize\0")
24112                .map(|sym| *sym)
24113                .expect("Expected symbol in library");
24114            let cusolverDnZungqr = __library
24115                .get(b"cusolverDnZungqr\0")
24116                .map(|sym| *sym)
24117                .expect("Expected symbol in library");
24118            let cusolverDnZungqr_bufferSize = __library
24119                .get(b"cusolverDnZungqr_bufferSize\0")
24120                .map(|sym| *sym)
24121                .expect("Expected symbol in library");
24122            let cusolverDnZungtr = __library
24123                .get(b"cusolverDnZungtr\0")
24124                .map(|sym| *sym)
24125                .expect("Expected symbol in library");
24126            let cusolverDnZungtr_bufferSize = __library
24127                .get(b"cusolverDnZungtr_bufferSize\0")
24128                .map(|sym| *sym)
24129                .expect("Expected symbol in library");
24130            let cusolverDnZunmqr = __library
24131                .get(b"cusolverDnZunmqr\0")
24132                .map(|sym| *sym)
24133                .expect("Expected symbol in library");
24134            let cusolverDnZunmqr_bufferSize = __library
24135                .get(b"cusolverDnZunmqr_bufferSize\0")
24136                .map(|sym| *sym)
24137                .expect("Expected symbol in library");
24138            let cusolverDnZunmtr = __library
24139                .get(b"cusolverDnZunmtr\0")
24140                .map(|sym| *sym)
24141                .expect("Expected symbol in library");
24142            let cusolverDnZunmtr_bufferSize = __library
24143                .get(b"cusolverDnZunmtr_bufferSize\0")
24144                .map(|sym| *sym)
24145                .expect("Expected symbol in library");
24146            let cusolverGetProperty = __library
24147                .get(b"cusolverGetProperty\0")
24148                .map(|sym| *sym)
24149                .expect("Expected symbol in library");
24150            let cusolverGetVersion = __library
24151                .get(b"cusolverGetVersion\0")
24152                .map(|sym| *sym)
24153                .expect("Expected symbol in library");
24154            let cusolverRfAccessBundledFactorsDevice = __library
24155                .get(b"cusolverRfAccessBundledFactorsDevice\0")
24156                .map(|sym| *sym)
24157                .expect("Expected symbol in library");
24158            let cusolverRfAnalyze = __library
24159                .get(b"cusolverRfAnalyze\0")
24160                .map(|sym| *sym)
24161                .expect("Expected symbol in library");
24162            let cusolverRfBatchAnalyze = __library
24163                .get(b"cusolverRfBatchAnalyze\0")
24164                .map(|sym| *sym)
24165                .expect("Expected symbol in library");
24166            let cusolverRfBatchRefactor = __library
24167                .get(b"cusolverRfBatchRefactor\0")
24168                .map(|sym| *sym)
24169                .expect("Expected symbol in library");
24170            let cusolverRfBatchResetValues = __library
24171                .get(b"cusolverRfBatchResetValues\0")
24172                .map(|sym| *sym)
24173                .expect("Expected symbol in library");
24174            let cusolverRfBatchSetupHost = __library
24175                .get(b"cusolverRfBatchSetupHost\0")
24176                .map(|sym| *sym)
24177                .expect("Expected symbol in library");
24178            let cusolverRfBatchSolve = __library
24179                .get(b"cusolverRfBatchSolve\0")
24180                .map(|sym| *sym)
24181                .expect("Expected symbol in library");
24182            let cusolverRfBatchZeroPivot = __library
24183                .get(b"cusolverRfBatchZeroPivot\0")
24184                .map(|sym| *sym)
24185                .expect("Expected symbol in library");
24186            let cusolverRfCreate = __library
24187                .get(b"cusolverRfCreate\0")
24188                .map(|sym| *sym)
24189                .expect("Expected symbol in library");
24190            let cusolverRfDestroy = __library
24191                .get(b"cusolverRfDestroy\0")
24192                .map(|sym| *sym)
24193                .expect("Expected symbol in library");
24194            let cusolverRfExtractBundledFactorsHost = __library
24195                .get(b"cusolverRfExtractBundledFactorsHost\0")
24196                .map(|sym| *sym)
24197                .expect("Expected symbol in library");
24198            let cusolverRfExtractSplitFactorsHost = __library
24199                .get(b"cusolverRfExtractSplitFactorsHost\0")
24200                .map(|sym| *sym)
24201                .expect("Expected symbol in library");
24202            let cusolverRfGetAlgs = __library
24203                .get(b"cusolverRfGetAlgs\0")
24204                .map(|sym| *sym)
24205                .expect("Expected symbol in library");
24206            let cusolverRfGetMatrixFormat = __library
24207                .get(b"cusolverRfGetMatrixFormat\0")
24208                .map(|sym| *sym)
24209                .expect("Expected symbol in library");
24210            let cusolverRfGetNumericBoostReport = __library
24211                .get(b"cusolverRfGetNumericBoostReport\0")
24212                .map(|sym| *sym)
24213                .expect("Expected symbol in library");
24214            let cusolverRfGetNumericProperties = __library
24215                .get(b"cusolverRfGetNumericProperties\0")
24216                .map(|sym| *sym)
24217                .expect("Expected symbol in library");
24218            let cusolverRfGetResetValuesFastMode = __library
24219                .get(b"cusolverRfGetResetValuesFastMode\0")
24220                .map(|sym| *sym)
24221                .expect("Expected symbol in library");
24222            let cusolverRfRefactor = __library
24223                .get(b"cusolverRfRefactor\0")
24224                .map(|sym| *sym)
24225                .expect("Expected symbol in library");
24226            let cusolverRfResetValues = __library
24227                .get(b"cusolverRfResetValues\0")
24228                .map(|sym| *sym)
24229                .expect("Expected symbol in library");
24230            let cusolverRfSetAlgs = __library
24231                .get(b"cusolverRfSetAlgs\0")
24232                .map(|sym| *sym)
24233                .expect("Expected symbol in library");
24234            let cusolverRfSetMatrixFormat = __library
24235                .get(b"cusolverRfSetMatrixFormat\0")
24236                .map(|sym| *sym)
24237                .expect("Expected symbol in library");
24238            let cusolverRfSetNumericProperties = __library
24239                .get(b"cusolverRfSetNumericProperties\0")
24240                .map(|sym| *sym)
24241                .expect("Expected symbol in library");
24242            let cusolverRfSetResetValuesFastMode = __library
24243                .get(b"cusolverRfSetResetValuesFastMode\0")
24244                .map(|sym| *sym)
24245                .expect("Expected symbol in library");
24246            let cusolverRfSetupDevice = __library
24247                .get(b"cusolverRfSetupDevice\0")
24248                .map(|sym| *sym)
24249                .expect("Expected symbol in library");
24250            let cusolverRfSetupHost = __library
24251                .get(b"cusolverRfSetupHost\0")
24252                .map(|sym| *sym)
24253                .expect("Expected symbol in library");
24254            let cusolverRfSolve = __library
24255                .get(b"cusolverRfSolve\0")
24256                .map(|sym| *sym)
24257                .expect("Expected symbol in library");
24258            let cusolverSpCcsreigsHost = __library
24259                .get(b"cusolverSpCcsreigsHost\0")
24260                .map(|sym| *sym)
24261                .expect("Expected symbol in library");
24262            let cusolverSpCcsreigvsi = __library
24263                .get(b"cusolverSpCcsreigvsi\0")
24264                .map(|sym| *sym)
24265                .expect("Expected symbol in library");
24266            let cusolverSpCcsreigvsiHost = __library
24267                .get(b"cusolverSpCcsreigvsiHost\0")
24268                .map(|sym| *sym)
24269                .expect("Expected symbol in library");
24270            let cusolverSpCcsrlsqvqrHost = __library
24271                .get(b"cusolverSpCcsrlsqvqrHost\0")
24272                .map(|sym| *sym)
24273                .expect("Expected symbol in library");
24274            let cusolverSpCcsrlsvchol = __library
24275                .get(b"cusolverSpCcsrlsvchol\0")
24276                .map(|sym| *sym)
24277                .expect("Expected symbol in library");
24278            let cusolverSpCcsrlsvcholHost = __library
24279                .get(b"cusolverSpCcsrlsvcholHost\0")
24280                .map(|sym| *sym)
24281                .expect("Expected symbol in library");
24282            let cusolverSpCcsrlsvluHost = __library
24283                .get(b"cusolverSpCcsrlsvluHost\0")
24284                .map(|sym| *sym)
24285                .expect("Expected symbol in library");
24286            let cusolverSpCcsrlsvqr = __library
24287                .get(b"cusolverSpCcsrlsvqr\0")
24288                .map(|sym| *sym)
24289                .expect("Expected symbol in library");
24290            let cusolverSpCcsrlsvqrHost = __library
24291                .get(b"cusolverSpCcsrlsvqrHost\0")
24292                .map(|sym| *sym)
24293                .expect("Expected symbol in library");
24294            let cusolverSpCcsrqrBufferInfoBatched = __library
24295                .get(b"cusolverSpCcsrqrBufferInfoBatched\0")
24296                .map(|sym| *sym)
24297                .expect("Expected symbol in library");
24298            let cusolverSpCcsrqrsvBatched = __library
24299                .get(b"cusolverSpCcsrqrsvBatched\0")
24300                .map(|sym| *sym)
24301                .expect("Expected symbol in library");
24302            let cusolverSpCcsrzfdHost = __library
24303                .get(b"cusolverSpCcsrzfdHost\0")
24304                .map(|sym| *sym)
24305                .expect("Expected symbol in library");
24306            let cusolverSpCreate = __library
24307                .get(b"cusolverSpCreate\0")
24308                .map(|sym| *sym)
24309                .expect("Expected symbol in library");
24310            let cusolverSpCreateCsrqrInfo = __library
24311                .get(b"cusolverSpCreateCsrqrInfo\0")
24312                .map(|sym| *sym)
24313                .expect("Expected symbol in library");
24314            let cusolverSpDcsreigsHost = __library
24315                .get(b"cusolverSpDcsreigsHost\0")
24316                .map(|sym| *sym)
24317                .expect("Expected symbol in library");
24318            let cusolverSpDcsreigvsi = __library
24319                .get(b"cusolverSpDcsreigvsi\0")
24320                .map(|sym| *sym)
24321                .expect("Expected symbol in library");
24322            let cusolverSpDcsreigvsiHost = __library
24323                .get(b"cusolverSpDcsreigvsiHost\0")
24324                .map(|sym| *sym)
24325                .expect("Expected symbol in library");
24326            let cusolverSpDcsrlsqvqrHost = __library
24327                .get(b"cusolverSpDcsrlsqvqrHost\0")
24328                .map(|sym| *sym)
24329                .expect("Expected symbol in library");
24330            let cusolverSpDcsrlsvchol = __library
24331                .get(b"cusolverSpDcsrlsvchol\0")
24332                .map(|sym| *sym)
24333                .expect("Expected symbol in library");
24334            let cusolverSpDcsrlsvcholHost = __library
24335                .get(b"cusolverSpDcsrlsvcholHost\0")
24336                .map(|sym| *sym)
24337                .expect("Expected symbol in library");
24338            let cusolverSpDcsrlsvluHost = __library
24339                .get(b"cusolverSpDcsrlsvluHost\0")
24340                .map(|sym| *sym)
24341                .expect("Expected symbol in library");
24342            let cusolverSpDcsrlsvqr = __library
24343                .get(b"cusolverSpDcsrlsvqr\0")
24344                .map(|sym| *sym)
24345                .expect("Expected symbol in library");
24346            let cusolverSpDcsrlsvqrHost = __library
24347                .get(b"cusolverSpDcsrlsvqrHost\0")
24348                .map(|sym| *sym)
24349                .expect("Expected symbol in library");
24350            let cusolverSpDcsrqrBufferInfoBatched = __library
24351                .get(b"cusolverSpDcsrqrBufferInfoBatched\0")
24352                .map(|sym| *sym)
24353                .expect("Expected symbol in library");
24354            let cusolverSpDcsrqrsvBatched = __library
24355                .get(b"cusolverSpDcsrqrsvBatched\0")
24356                .map(|sym| *sym)
24357                .expect("Expected symbol in library");
24358            let cusolverSpDcsrzfdHost = __library
24359                .get(b"cusolverSpDcsrzfdHost\0")
24360                .map(|sym| *sym)
24361                .expect("Expected symbol in library");
24362            let cusolverSpDestroy = __library
24363                .get(b"cusolverSpDestroy\0")
24364                .map(|sym| *sym)
24365                .expect("Expected symbol in library");
24366            let cusolverSpDestroyCsrqrInfo = __library
24367                .get(b"cusolverSpDestroyCsrqrInfo\0")
24368                .map(|sym| *sym)
24369                .expect("Expected symbol in library");
24370            let cusolverSpGetStream = __library
24371                .get(b"cusolverSpGetStream\0")
24372                .map(|sym| *sym)
24373                .expect("Expected symbol in library");
24374            let cusolverSpScsreigsHost = __library
24375                .get(b"cusolverSpScsreigsHost\0")
24376                .map(|sym| *sym)
24377                .expect("Expected symbol in library");
24378            let cusolverSpScsreigvsi = __library
24379                .get(b"cusolverSpScsreigvsi\0")
24380                .map(|sym| *sym)
24381                .expect("Expected symbol in library");
24382            let cusolverSpScsreigvsiHost = __library
24383                .get(b"cusolverSpScsreigvsiHost\0")
24384                .map(|sym| *sym)
24385                .expect("Expected symbol in library");
24386            let cusolverSpScsrlsqvqrHost = __library
24387                .get(b"cusolverSpScsrlsqvqrHost\0")
24388                .map(|sym| *sym)
24389                .expect("Expected symbol in library");
24390            let cusolverSpScsrlsvchol = __library
24391                .get(b"cusolverSpScsrlsvchol\0")
24392                .map(|sym| *sym)
24393                .expect("Expected symbol in library");
24394            let cusolverSpScsrlsvcholHost = __library
24395                .get(b"cusolverSpScsrlsvcholHost\0")
24396                .map(|sym| *sym)
24397                .expect("Expected symbol in library");
24398            let cusolverSpScsrlsvluHost = __library
24399                .get(b"cusolverSpScsrlsvluHost\0")
24400                .map(|sym| *sym)
24401                .expect("Expected symbol in library");
24402            let cusolverSpScsrlsvqr = __library
24403                .get(b"cusolverSpScsrlsvqr\0")
24404                .map(|sym| *sym)
24405                .expect("Expected symbol in library");
24406            let cusolverSpScsrlsvqrHost = __library
24407                .get(b"cusolverSpScsrlsvqrHost\0")
24408                .map(|sym| *sym)
24409                .expect("Expected symbol in library");
24410            let cusolverSpScsrqrBufferInfoBatched = __library
24411                .get(b"cusolverSpScsrqrBufferInfoBatched\0")
24412                .map(|sym| *sym)
24413                .expect("Expected symbol in library");
24414            let cusolverSpScsrqrsvBatched = __library
24415                .get(b"cusolverSpScsrqrsvBatched\0")
24416                .map(|sym| *sym)
24417                .expect("Expected symbol in library");
24418            let cusolverSpScsrzfdHost = __library
24419                .get(b"cusolverSpScsrzfdHost\0")
24420                .map(|sym| *sym)
24421                .expect("Expected symbol in library");
24422            let cusolverSpSetStream = __library
24423                .get(b"cusolverSpSetStream\0")
24424                .map(|sym| *sym)
24425                .expect("Expected symbol in library");
24426            let cusolverSpXcsrissymHost = __library
24427                .get(b"cusolverSpXcsrissymHost\0")
24428                .map(|sym| *sym)
24429                .expect("Expected symbol in library");
24430            let cusolverSpXcsrmetisndHost = __library
24431                .get(b"cusolverSpXcsrmetisndHost\0")
24432                .map(|sym| *sym)
24433                .expect("Expected symbol in library");
24434            let cusolverSpXcsrpermHost = __library
24435                .get(b"cusolverSpXcsrpermHost\0")
24436                .map(|sym| *sym)
24437                .expect("Expected symbol in library");
24438            let cusolverSpXcsrperm_bufferSizeHost = __library
24439                .get(b"cusolverSpXcsrperm_bufferSizeHost\0")
24440                .map(|sym| *sym)
24441                .expect("Expected symbol in library");
24442            let cusolverSpXcsrqrAnalysisBatched = __library
24443                .get(b"cusolverSpXcsrqrAnalysisBatched\0")
24444                .map(|sym| *sym)
24445                .expect("Expected symbol in library");
24446            let cusolverSpXcsrsymamdHost = __library
24447                .get(b"cusolverSpXcsrsymamdHost\0")
24448                .map(|sym| *sym)
24449                .expect("Expected symbol in library");
24450            let cusolverSpXcsrsymmdqHost = __library
24451                .get(b"cusolverSpXcsrsymmdqHost\0")
24452                .map(|sym| *sym)
24453                .expect("Expected symbol in library");
24454            let cusolverSpXcsrsymrcmHost = __library
24455                .get(b"cusolverSpXcsrsymrcmHost\0")
24456                .map(|sym| *sym)
24457                .expect("Expected symbol in library");
24458            let cusolverSpZcsreigsHost = __library
24459                .get(b"cusolverSpZcsreigsHost\0")
24460                .map(|sym| *sym)
24461                .expect("Expected symbol in library");
24462            let cusolverSpZcsreigvsi = __library
24463                .get(b"cusolverSpZcsreigvsi\0")
24464                .map(|sym| *sym)
24465                .expect("Expected symbol in library");
24466            let cusolverSpZcsreigvsiHost = __library
24467                .get(b"cusolverSpZcsreigvsiHost\0")
24468                .map(|sym| *sym)
24469                .expect("Expected symbol in library");
24470            let cusolverSpZcsrlsqvqrHost = __library
24471                .get(b"cusolverSpZcsrlsqvqrHost\0")
24472                .map(|sym| *sym)
24473                .expect("Expected symbol in library");
24474            let cusolverSpZcsrlsvchol = __library
24475                .get(b"cusolverSpZcsrlsvchol\0")
24476                .map(|sym| *sym)
24477                .expect("Expected symbol in library");
24478            let cusolverSpZcsrlsvcholHost = __library
24479                .get(b"cusolverSpZcsrlsvcholHost\0")
24480                .map(|sym| *sym)
24481                .expect("Expected symbol in library");
24482            let cusolverSpZcsrlsvluHost = __library
24483                .get(b"cusolverSpZcsrlsvluHost\0")
24484                .map(|sym| *sym)
24485                .expect("Expected symbol in library");
24486            let cusolverSpZcsrlsvqr = __library
24487                .get(b"cusolverSpZcsrlsvqr\0")
24488                .map(|sym| *sym)
24489                .expect("Expected symbol in library");
24490            let cusolverSpZcsrlsvqrHost = __library
24491                .get(b"cusolverSpZcsrlsvqrHost\0")
24492                .map(|sym| *sym)
24493                .expect("Expected symbol in library");
24494            let cusolverSpZcsrqrBufferInfoBatched = __library
24495                .get(b"cusolverSpZcsrqrBufferInfoBatched\0")
24496                .map(|sym| *sym)
24497                .expect("Expected symbol in library");
24498            let cusolverSpZcsrqrsvBatched = __library
24499                .get(b"cusolverSpZcsrqrsvBatched\0")
24500                .map(|sym| *sym)
24501                .expect("Expected symbol in library");
24502            let cusolverSpZcsrzfdHost = __library
24503                .get(b"cusolverSpZcsrzfdHost\0")
24504                .map(|sym| *sym)
24505                .expect("Expected symbol in library");
24506            Ok(Self {
24507                __library,
24508                cusolverDnCCgels,
24509                cusolverDnCCgels_bufferSize,
24510                cusolverDnCCgesv,
24511                cusolverDnCCgesv_bufferSize,
24512                cusolverDnCEgels,
24513                cusolverDnCEgels_bufferSize,
24514                cusolverDnCEgesv,
24515                cusolverDnCEgesv_bufferSize,
24516                cusolverDnCKgels,
24517                cusolverDnCKgels_bufferSize,
24518                cusolverDnCKgesv,
24519                cusolverDnCKgesv_bufferSize,
24520                cusolverDnCYgels,
24521                cusolverDnCYgels_bufferSize,
24522                cusolverDnCYgesv,
24523                cusolverDnCYgesv_bufferSize,
24524                cusolverDnCgebrd,
24525                cusolverDnCgebrd_bufferSize,
24526                cusolverDnCgeqrf,
24527                cusolverDnCgeqrf_bufferSize,
24528                cusolverDnCgesvd,
24529                cusolverDnCgesvd_bufferSize,
24530                cusolverDnCgesvdaStridedBatched,
24531                cusolverDnCgesvdaStridedBatched_bufferSize,
24532                cusolverDnCgesvdj,
24533                cusolverDnCgesvdjBatched,
24534                cusolverDnCgesvdjBatched_bufferSize,
24535                cusolverDnCgesvdj_bufferSize,
24536                cusolverDnCgetrf,
24537                cusolverDnCgetrf_bufferSize,
24538                cusolverDnCgetrs,
24539                cusolverDnCheevd,
24540                cusolverDnCheevd_bufferSize,
24541                cusolverDnCheevdx,
24542                cusolverDnCheevdx_bufferSize,
24543                cusolverDnCheevj,
24544                cusolverDnCheevjBatched,
24545                cusolverDnCheevjBatched_bufferSize,
24546                cusolverDnCheevj_bufferSize,
24547                cusolverDnChegvd,
24548                cusolverDnChegvd_bufferSize,
24549                cusolverDnChegvdx,
24550                cusolverDnChegvdx_bufferSize,
24551                cusolverDnChegvj,
24552                cusolverDnChegvj_bufferSize,
24553                cusolverDnChetrd,
24554                cusolverDnChetrd_bufferSize,
24555                cusolverDnClaswp,
24556                cusolverDnClauum,
24557                cusolverDnClauum_bufferSize,
24558                cusolverDnCpotrf,
24559                cusolverDnCpotrfBatched,
24560                cusolverDnCpotrf_bufferSize,
24561                cusolverDnCpotri,
24562                cusolverDnCpotri_bufferSize,
24563                cusolverDnCpotrs,
24564                cusolverDnCpotrsBatched,
24565                cusolverDnCreate,
24566                cusolverDnCreateGesvdjInfo,
24567                cusolverDnCreateParams,
24568                cusolverDnCreateSyevjInfo,
24569                cusolverDnCsytrf,
24570                cusolverDnCsytrf_bufferSize,
24571                cusolverDnCsytri,
24572                cusolverDnCsytri_bufferSize,
24573                cusolverDnCungbr,
24574                cusolverDnCungbr_bufferSize,
24575                cusolverDnCungqr,
24576                cusolverDnCungqr_bufferSize,
24577                cusolverDnCungtr,
24578                cusolverDnCungtr_bufferSize,
24579                cusolverDnCunmqr,
24580                cusolverDnCunmqr_bufferSize,
24581                cusolverDnCunmtr,
24582                cusolverDnCunmtr_bufferSize,
24583                cusolverDnDBgels,
24584                cusolverDnDBgels_bufferSize,
24585                cusolverDnDBgesv,
24586                cusolverDnDBgesv_bufferSize,
24587                cusolverDnDDgels,
24588                cusolverDnDDgels_bufferSize,
24589                cusolverDnDDgesv,
24590                cusolverDnDDgesv_bufferSize,
24591                cusolverDnDHgels,
24592                cusolverDnDHgels_bufferSize,
24593                cusolverDnDHgesv,
24594                cusolverDnDHgesv_bufferSize,
24595                cusolverDnDSgels,
24596                cusolverDnDSgels_bufferSize,
24597                cusolverDnDSgesv,
24598                cusolverDnDSgesv_bufferSize,
24599                cusolverDnDXgels,
24600                cusolverDnDXgels_bufferSize,
24601                cusolverDnDXgesv,
24602                cusolverDnDXgesv_bufferSize,
24603                cusolverDnDestroy,
24604                cusolverDnDestroyGesvdjInfo,
24605                cusolverDnDestroyParams,
24606                cusolverDnDestroySyevjInfo,
24607                cusolverDnDgebrd,
24608                cusolverDnDgebrd_bufferSize,
24609                cusolverDnDgeqrf,
24610                cusolverDnDgeqrf_bufferSize,
24611                cusolverDnDgesvd,
24612                cusolverDnDgesvd_bufferSize,
24613                cusolverDnDgesvdaStridedBatched,
24614                cusolverDnDgesvdaStridedBatched_bufferSize,
24615                cusolverDnDgesvdj,
24616                cusolverDnDgesvdjBatched,
24617                cusolverDnDgesvdjBatched_bufferSize,
24618                cusolverDnDgesvdj_bufferSize,
24619                cusolverDnDgetrf,
24620                cusolverDnDgetrf_bufferSize,
24621                cusolverDnDgetrs,
24622                cusolverDnDlaswp,
24623                cusolverDnDlauum,
24624                cusolverDnDlauum_bufferSize,
24625                cusolverDnDorgbr,
24626                cusolverDnDorgbr_bufferSize,
24627                cusolverDnDorgqr,
24628                cusolverDnDorgqr_bufferSize,
24629                cusolverDnDorgtr,
24630                cusolverDnDorgtr_bufferSize,
24631                cusolverDnDormqr,
24632                cusolverDnDormqr_bufferSize,
24633                cusolverDnDormtr,
24634                cusolverDnDormtr_bufferSize,
24635                cusolverDnDpotrf,
24636                cusolverDnDpotrfBatched,
24637                cusolverDnDpotrf_bufferSize,
24638                cusolverDnDpotri,
24639                cusolverDnDpotri_bufferSize,
24640                cusolverDnDpotrs,
24641                cusolverDnDpotrsBatched,
24642                cusolverDnDsyevd,
24643                cusolverDnDsyevd_bufferSize,
24644                cusolverDnDsyevdx,
24645                cusolverDnDsyevdx_bufferSize,
24646                cusolverDnDsyevj,
24647                cusolverDnDsyevjBatched,
24648                cusolverDnDsyevjBatched_bufferSize,
24649                cusolverDnDsyevj_bufferSize,
24650                cusolverDnDsygvd,
24651                cusolverDnDsygvd_bufferSize,
24652                cusolverDnDsygvdx,
24653                cusolverDnDsygvdx_bufferSize,
24654                cusolverDnDsygvj,
24655                cusolverDnDsygvj_bufferSize,
24656                cusolverDnDsytrd,
24657                cusolverDnDsytrd_bufferSize,
24658                cusolverDnDsytrf,
24659                cusolverDnDsytrf_bufferSize,
24660                cusolverDnDsytri,
24661                cusolverDnDsytri_bufferSize,
24662                #[cfg(any(
24663                    feature = "cuda-11040",
24664                    feature = "cuda-11050",
24665                    feature = "cuda-11060",
24666                    feature = "cuda-11070",
24667                    feature = "cuda-11080",
24668                    feature = "cuda-12000",
24669                    feature = "cuda-12010",
24670                    feature = "cuda-12020",
24671                    feature = "cuda-12030",
24672                    feature = "cuda-12040",
24673                    feature = "cuda-12050",
24674                    feature = "cuda-12060",
24675                    feature = "cuda-12080",
24676                    feature = "cuda-12090"
24677                ))]
24678                cusolverDnGeqrf,
24679                #[cfg(any(
24680                    feature = "cuda-11040",
24681                    feature = "cuda-11050",
24682                    feature = "cuda-11060",
24683                    feature = "cuda-11070",
24684                    feature = "cuda-11080",
24685                    feature = "cuda-12000",
24686                    feature = "cuda-12010",
24687                    feature = "cuda-12020",
24688                    feature = "cuda-12030",
24689                    feature = "cuda-12040",
24690                    feature = "cuda-12050",
24691                    feature = "cuda-12060",
24692                    feature = "cuda-12080",
24693                    feature = "cuda-12090"
24694                ))]
24695                cusolverDnGeqrf_bufferSize,
24696                #[cfg(any(
24697                    feature = "cuda-11040",
24698                    feature = "cuda-11050",
24699                    feature = "cuda-11060",
24700                    feature = "cuda-11070",
24701                    feature = "cuda-11080",
24702                    feature = "cuda-12000",
24703                    feature = "cuda-12010",
24704                    feature = "cuda-12020",
24705                    feature = "cuda-12030",
24706                    feature = "cuda-12040",
24707                    feature = "cuda-12050",
24708                    feature = "cuda-12060",
24709                    feature = "cuda-12080",
24710                    feature = "cuda-12090"
24711                ))]
24712                cusolverDnGesvd,
24713                #[cfg(any(
24714                    feature = "cuda-11040",
24715                    feature = "cuda-11050",
24716                    feature = "cuda-11060",
24717                    feature = "cuda-11070",
24718                    feature = "cuda-11080",
24719                    feature = "cuda-12000",
24720                    feature = "cuda-12010",
24721                    feature = "cuda-12020",
24722                    feature = "cuda-12030",
24723                    feature = "cuda-12040",
24724                    feature = "cuda-12050",
24725                    feature = "cuda-12060",
24726                    feature = "cuda-12080",
24727                    feature = "cuda-12090"
24728                ))]
24729                cusolverDnGesvd_bufferSize,
24730                #[cfg(any(
24731                    feature = "cuda-12020",
24732                    feature = "cuda-12030",
24733                    feature = "cuda-12040",
24734                    feature = "cuda-12050",
24735                    feature = "cuda-12060",
24736                    feature = "cuda-12080",
24737                    feature = "cuda-12090",
24738                    feature = "cuda-13000",
24739                    feature = "cuda-13010"
24740                ))]
24741                cusolverDnGetDeterministicMode,
24742                #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
24743                cusolverDnGetEmulationStrategy,
24744                #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
24745                cusolverDnGetMathMode,
24746                cusolverDnGetStream,
24747                #[cfg(any(
24748                    feature = "cuda-11040",
24749                    feature = "cuda-11050",
24750                    feature = "cuda-11060",
24751                    feature = "cuda-11070",
24752                    feature = "cuda-11080",
24753                    feature = "cuda-12000",
24754                    feature = "cuda-12010",
24755                    feature = "cuda-12020",
24756                    feature = "cuda-12030",
24757                    feature = "cuda-12040",
24758                    feature = "cuda-12050",
24759                    feature = "cuda-12060",
24760                    feature = "cuda-12080",
24761                    feature = "cuda-12090"
24762                ))]
24763                cusolverDnGetrf,
24764                #[cfg(any(
24765                    feature = "cuda-11040",
24766                    feature = "cuda-11050",
24767                    feature = "cuda-11060",
24768                    feature = "cuda-11070",
24769                    feature = "cuda-11080",
24770                    feature = "cuda-12000",
24771                    feature = "cuda-12010",
24772                    feature = "cuda-12020",
24773                    feature = "cuda-12030",
24774                    feature = "cuda-12040",
24775                    feature = "cuda-12050",
24776                    feature = "cuda-12060",
24777                    feature = "cuda-12080",
24778                    feature = "cuda-12090"
24779                ))]
24780                cusolverDnGetrf_bufferSize,
24781                #[cfg(any(
24782                    feature = "cuda-11040",
24783                    feature = "cuda-11050",
24784                    feature = "cuda-11060",
24785                    feature = "cuda-11070",
24786                    feature = "cuda-11080",
24787                    feature = "cuda-12000",
24788                    feature = "cuda-12010",
24789                    feature = "cuda-12020",
24790                    feature = "cuda-12030",
24791                    feature = "cuda-12040",
24792                    feature = "cuda-12050",
24793                    feature = "cuda-12060",
24794                    feature = "cuda-12080",
24795                    feature = "cuda-12090"
24796                ))]
24797                cusolverDnGetrs,
24798                cusolverDnIRSInfosCreate,
24799                cusolverDnIRSInfosDestroy,
24800                cusolverDnIRSInfosGetMaxIters,
24801                cusolverDnIRSInfosGetNiters,
24802                cusolverDnIRSInfosGetOuterNiters,
24803                cusolverDnIRSInfosGetResidualHistory,
24804                cusolverDnIRSInfosRequestResidual,
24805                cusolverDnIRSParamsCreate,
24806                cusolverDnIRSParamsDestroy,
24807                cusolverDnIRSParamsDisableFallback,
24808                cusolverDnIRSParamsEnableFallback,
24809                cusolverDnIRSParamsGetMaxIters,
24810                cusolverDnIRSParamsSetMaxIters,
24811                cusolverDnIRSParamsSetMaxItersInner,
24812                cusolverDnIRSParamsSetRefinementSolver,
24813                cusolverDnIRSParamsSetSolverLowestPrecision,
24814                cusolverDnIRSParamsSetSolverMainPrecision,
24815                cusolverDnIRSParamsSetSolverPrecisions,
24816                cusolverDnIRSParamsSetTol,
24817                cusolverDnIRSParamsSetTolInner,
24818                cusolverDnIRSXgels,
24819                cusolverDnIRSXgels_bufferSize,
24820                cusolverDnIRSXgesv,
24821                cusolverDnIRSXgesv_bufferSize,
24822                #[cfg(any(
24823                    feature = "cuda-11040",
24824                    feature = "cuda-11050",
24825                    feature = "cuda-11060",
24826                    feature = "cuda-11070",
24827                    feature = "cuda-11080",
24828                    feature = "cuda-12000",
24829                    feature = "cuda-12010",
24830                    feature = "cuda-12020",
24831                    feature = "cuda-12030",
24832                    feature = "cuda-12040",
24833                    feature = "cuda-12050",
24834                    feature = "cuda-12060",
24835                    feature = "cuda-12080",
24836                    feature = "cuda-12090"
24837                ))]
24838                cusolverDnPotrf,
24839                #[cfg(any(
24840                    feature = "cuda-11040",
24841                    feature = "cuda-11050",
24842                    feature = "cuda-11060",
24843                    feature = "cuda-11070",
24844                    feature = "cuda-11080",
24845                    feature = "cuda-12000",
24846                    feature = "cuda-12010",
24847                    feature = "cuda-12020",
24848                    feature = "cuda-12030",
24849                    feature = "cuda-12040",
24850                    feature = "cuda-12050",
24851                    feature = "cuda-12060",
24852                    feature = "cuda-12080",
24853                    feature = "cuda-12090"
24854                ))]
24855                cusolverDnPotrf_bufferSize,
24856                #[cfg(any(
24857                    feature = "cuda-11040",
24858                    feature = "cuda-11050",
24859                    feature = "cuda-11060",
24860                    feature = "cuda-11070",
24861                    feature = "cuda-11080",
24862                    feature = "cuda-12000",
24863                    feature = "cuda-12010",
24864                    feature = "cuda-12020",
24865                    feature = "cuda-12030",
24866                    feature = "cuda-12040",
24867                    feature = "cuda-12050",
24868                    feature = "cuda-12060",
24869                    feature = "cuda-12080",
24870                    feature = "cuda-12090"
24871                ))]
24872                cusolverDnPotrs,
24873                cusolverDnSBgels,
24874                cusolverDnSBgels_bufferSize,
24875                cusolverDnSBgesv,
24876                cusolverDnSBgesv_bufferSize,
24877                cusolverDnSHgels,
24878                cusolverDnSHgels_bufferSize,
24879                cusolverDnSHgesv,
24880                cusolverDnSHgesv_bufferSize,
24881                cusolverDnSSgels,
24882                cusolverDnSSgels_bufferSize,
24883                cusolverDnSSgesv,
24884                cusolverDnSSgesv_bufferSize,
24885                cusolverDnSXgels,
24886                cusolverDnSXgels_bufferSize,
24887                cusolverDnSXgesv,
24888                cusolverDnSXgesv_bufferSize,
24889                cusolverDnSetAdvOptions,
24890                #[cfg(any(
24891                    feature = "cuda-12020",
24892                    feature = "cuda-12030",
24893                    feature = "cuda-12040",
24894                    feature = "cuda-12050",
24895                    feature = "cuda-12060",
24896                    feature = "cuda-12080",
24897                    feature = "cuda-12090",
24898                    feature = "cuda-13000",
24899                    feature = "cuda-13010"
24900                ))]
24901                cusolverDnSetDeterministicMode,
24902                #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
24903                cusolverDnSetEmulationStrategy,
24904                #[cfg(any(feature = "cuda-13000", feature = "cuda-13010"))]
24905                cusolverDnSetMathMode,
24906                cusolverDnSetStream,
24907                cusolverDnSgebrd,
24908                cusolverDnSgebrd_bufferSize,
24909                cusolverDnSgeqrf,
24910                cusolverDnSgeqrf_bufferSize,
24911                cusolverDnSgesvd,
24912                cusolverDnSgesvd_bufferSize,
24913                cusolverDnSgesvdaStridedBatched,
24914                cusolverDnSgesvdaStridedBatched_bufferSize,
24915                cusolverDnSgesvdj,
24916                cusolverDnSgesvdjBatched,
24917                cusolverDnSgesvdjBatched_bufferSize,
24918                cusolverDnSgesvdj_bufferSize,
24919                cusolverDnSgetrf,
24920                cusolverDnSgetrf_bufferSize,
24921                cusolverDnSgetrs,
24922                cusolverDnSlaswp,
24923                cusolverDnSlauum,
24924                cusolverDnSlauum_bufferSize,
24925                cusolverDnSorgbr,
24926                cusolverDnSorgbr_bufferSize,
24927                cusolverDnSorgqr,
24928                cusolverDnSorgqr_bufferSize,
24929                cusolverDnSorgtr,
24930                cusolverDnSorgtr_bufferSize,
24931                cusolverDnSormqr,
24932                cusolverDnSormqr_bufferSize,
24933                cusolverDnSormtr,
24934                cusolverDnSormtr_bufferSize,
24935                cusolverDnSpotrf,
24936                cusolverDnSpotrfBatched,
24937                cusolverDnSpotrf_bufferSize,
24938                cusolverDnSpotri,
24939                cusolverDnSpotri_bufferSize,
24940                cusolverDnSpotrs,
24941                cusolverDnSpotrsBatched,
24942                cusolverDnSsyevd,
24943                cusolverDnSsyevd_bufferSize,
24944                cusolverDnSsyevdx,
24945                cusolverDnSsyevdx_bufferSize,
24946                cusolverDnSsyevj,
24947                cusolverDnSsyevjBatched,
24948                cusolverDnSsyevjBatched_bufferSize,
24949                cusolverDnSsyevj_bufferSize,
24950                cusolverDnSsygvd,
24951                cusolverDnSsygvd_bufferSize,
24952                cusolverDnSsygvdx,
24953                cusolverDnSsygvdx_bufferSize,
24954                cusolverDnSsygvj,
24955                cusolverDnSsygvj_bufferSize,
24956                cusolverDnSsytrd,
24957                cusolverDnSsytrd_bufferSize,
24958                cusolverDnSsytrf,
24959                cusolverDnSsytrf_bufferSize,
24960                cusolverDnSsytri,
24961                cusolverDnSsytri_bufferSize,
24962                #[cfg(any(
24963                    feature = "cuda-11040",
24964                    feature = "cuda-11050",
24965                    feature = "cuda-11060",
24966                    feature = "cuda-11070",
24967                    feature = "cuda-11080",
24968                    feature = "cuda-12000",
24969                    feature = "cuda-12010",
24970                    feature = "cuda-12020",
24971                    feature = "cuda-12030",
24972                    feature = "cuda-12040",
24973                    feature = "cuda-12050",
24974                    feature = "cuda-12060",
24975                    feature = "cuda-12080",
24976                    feature = "cuda-12090"
24977                ))]
24978                cusolverDnSyevd,
24979                #[cfg(any(
24980                    feature = "cuda-11040",
24981                    feature = "cuda-11050",
24982                    feature = "cuda-11060",
24983                    feature = "cuda-11070",
24984                    feature = "cuda-11080",
24985                    feature = "cuda-12000",
24986                    feature = "cuda-12010",
24987                    feature = "cuda-12020",
24988                    feature = "cuda-12030",
24989                    feature = "cuda-12040",
24990                    feature = "cuda-12050",
24991                    feature = "cuda-12060",
24992                    feature = "cuda-12080",
24993                    feature = "cuda-12090"
24994                ))]
24995                cusolverDnSyevd_bufferSize,
24996                #[cfg(any(
24997                    feature = "cuda-11040",
24998                    feature = "cuda-11050",
24999                    feature = "cuda-11060",
25000                    feature = "cuda-11070",
25001                    feature = "cuda-11080",
25002                    feature = "cuda-12000",
25003                    feature = "cuda-12010",
25004                    feature = "cuda-12020",
25005                    feature = "cuda-12030",
25006                    feature = "cuda-12040",
25007                    feature = "cuda-12050",
25008                    feature = "cuda-12060",
25009                    feature = "cuda-12080",
25010                    feature = "cuda-12090"
25011                ))]
25012                cusolverDnSyevdx,
25013                #[cfg(any(
25014                    feature = "cuda-11040",
25015                    feature = "cuda-11050",
25016                    feature = "cuda-11060",
25017                    feature = "cuda-11070",
25018                    feature = "cuda-11080",
25019                    feature = "cuda-12000",
25020                    feature = "cuda-12010",
25021                    feature = "cuda-12020",
25022                    feature = "cuda-12030",
25023                    feature = "cuda-12040",
25024                    feature = "cuda-12050",
25025                    feature = "cuda-12060",
25026                    feature = "cuda-12080",
25027                    feature = "cuda-12090"
25028                ))]
25029                cusolverDnSyevdx_bufferSize,
25030                #[cfg(any(
25031                    feature = "cuda-12060",
25032                    feature = "cuda-12080",
25033                    feature = "cuda-12090",
25034                    feature = "cuda-13000",
25035                    feature = "cuda-13010"
25036                ))]
25037                cusolverDnXgeev,
25038                #[cfg(any(
25039                    feature = "cuda-12060",
25040                    feature = "cuda-12080",
25041                    feature = "cuda-12090",
25042                    feature = "cuda-13000",
25043                    feature = "cuda-13010"
25044                ))]
25045                cusolverDnXgeev_bufferSize,
25046                cusolverDnXgeqrf,
25047                cusolverDnXgeqrf_bufferSize,
25048                cusolverDnXgesvd,
25049                cusolverDnXgesvd_bufferSize,
25050                cusolverDnXgesvdjGetResidual,
25051                cusolverDnXgesvdjGetSweeps,
25052                cusolverDnXgesvdjSetMaxSweeps,
25053                cusolverDnXgesvdjSetSortEig,
25054                cusolverDnXgesvdjSetTolerance,
25055                cusolverDnXgesvdp,
25056                cusolverDnXgesvdp_bufferSize,
25057                cusolverDnXgesvdr,
25058                cusolverDnXgesvdr_bufferSize,
25059                cusolverDnXgetrf,
25060                cusolverDnXgetrf_bufferSize,
25061                cusolverDnXgetrs,
25062                #[cfg(any(feature = "cuda-12040"))]
25063                cusolverDnXlarft,
25064                #[cfg(any(
25065                    feature = "cuda-12050",
25066                    feature = "cuda-12060",
25067                    feature = "cuda-12080",
25068                    feature = "cuda-12090",
25069                    feature = "cuda-13000",
25070                    feature = "cuda-13010"
25071                ))]
25072                cusolverDnXlarft,
25073                #[cfg(any(feature = "cuda-12040"))]
25074                cusolverDnXlarft_bufferSize,
25075                #[cfg(any(
25076                    feature = "cuda-12050",
25077                    feature = "cuda-12060",
25078                    feature = "cuda-12080",
25079                    feature = "cuda-12090",
25080                    feature = "cuda-13000",
25081                    feature = "cuda-13010"
25082                ))]
25083                cusolverDnXlarft_bufferSize,
25084                cusolverDnXpotrf,
25085                cusolverDnXpotrf_bufferSize,
25086                cusolverDnXpotrs,
25087                #[cfg(any(
25088                    feature = "cuda-12060",
25089                    feature = "cuda-12080",
25090                    feature = "cuda-12090",
25091                    feature = "cuda-13000",
25092                    feature = "cuda-13010"
25093                ))]
25094                cusolverDnXsyevBatched,
25095                #[cfg(any(
25096                    feature = "cuda-12060",
25097                    feature = "cuda-12080",
25098                    feature = "cuda-12090",
25099                    feature = "cuda-13000",
25100                    feature = "cuda-13010"
25101                ))]
25102                cusolverDnXsyevBatched_bufferSize,
25103                cusolverDnXsyevd,
25104                cusolverDnXsyevd_bufferSize,
25105                cusolverDnXsyevdx,
25106                cusolverDnXsyevdx_bufferSize,
25107                cusolverDnXsyevjGetResidual,
25108                cusolverDnXsyevjGetSweeps,
25109                cusolverDnXsyevjSetMaxSweeps,
25110                cusolverDnXsyevjSetSortEig,
25111                cusolverDnXsyevjSetTolerance,
25112                cusolverDnXsytrs,
25113                cusolverDnXsytrs_bufferSize,
25114                cusolverDnXtrtri,
25115                cusolverDnXtrtri_bufferSize,
25116                cusolverDnZCgels,
25117                cusolverDnZCgels_bufferSize,
25118                cusolverDnZCgesv,
25119                cusolverDnZCgesv_bufferSize,
25120                cusolverDnZEgels,
25121                cusolverDnZEgels_bufferSize,
25122                cusolverDnZEgesv,
25123                cusolverDnZEgesv_bufferSize,
25124                cusolverDnZKgels,
25125                cusolverDnZKgels_bufferSize,
25126                cusolverDnZKgesv,
25127                cusolverDnZKgesv_bufferSize,
25128                cusolverDnZYgels,
25129                cusolverDnZYgels_bufferSize,
25130                cusolverDnZYgesv,
25131                cusolverDnZYgesv_bufferSize,
25132                cusolverDnZZgels,
25133                cusolverDnZZgels_bufferSize,
25134                cusolverDnZZgesv,
25135                cusolverDnZZgesv_bufferSize,
25136                cusolverDnZgebrd,
25137                cusolverDnZgebrd_bufferSize,
25138                cusolverDnZgeqrf,
25139                cusolverDnZgeqrf_bufferSize,
25140                cusolverDnZgesvd,
25141                cusolverDnZgesvd_bufferSize,
25142                cusolverDnZgesvdaStridedBatched,
25143                cusolverDnZgesvdaStridedBatched_bufferSize,
25144                cusolverDnZgesvdj,
25145                cusolverDnZgesvdjBatched,
25146                cusolverDnZgesvdjBatched_bufferSize,
25147                cusolverDnZgesvdj_bufferSize,
25148                cusolverDnZgetrf,
25149                cusolverDnZgetrf_bufferSize,
25150                cusolverDnZgetrs,
25151                cusolverDnZheevd,
25152                cusolverDnZheevd_bufferSize,
25153                cusolverDnZheevdx,
25154                cusolverDnZheevdx_bufferSize,
25155                cusolverDnZheevj,
25156                cusolverDnZheevjBatched,
25157                cusolverDnZheevjBatched_bufferSize,
25158                cusolverDnZheevj_bufferSize,
25159                cusolverDnZhegvd,
25160                cusolverDnZhegvd_bufferSize,
25161                cusolverDnZhegvdx,
25162                cusolverDnZhegvdx_bufferSize,
25163                cusolverDnZhegvj,
25164                cusolverDnZhegvj_bufferSize,
25165                cusolverDnZhetrd,
25166                cusolverDnZhetrd_bufferSize,
25167                cusolverDnZlaswp,
25168                cusolverDnZlauum,
25169                cusolverDnZlauum_bufferSize,
25170                cusolverDnZpotrf,
25171                cusolverDnZpotrfBatched,
25172                cusolverDnZpotrf_bufferSize,
25173                cusolverDnZpotri,
25174                cusolverDnZpotri_bufferSize,
25175                cusolverDnZpotrs,
25176                cusolverDnZpotrsBatched,
25177                cusolverDnZsytrf,
25178                cusolverDnZsytrf_bufferSize,
25179                cusolverDnZsytri,
25180                cusolverDnZsytri_bufferSize,
25181                cusolverDnZungbr,
25182                cusolverDnZungbr_bufferSize,
25183                cusolverDnZungqr,
25184                cusolverDnZungqr_bufferSize,
25185                cusolverDnZungtr,
25186                cusolverDnZungtr_bufferSize,
25187                cusolverDnZunmqr,
25188                cusolverDnZunmqr_bufferSize,
25189                cusolverDnZunmtr,
25190                cusolverDnZunmtr_bufferSize,
25191                cusolverGetProperty,
25192                cusolverGetVersion,
25193                cusolverRfAccessBundledFactorsDevice,
25194                cusolverRfAnalyze,
25195                cusolverRfBatchAnalyze,
25196                cusolverRfBatchRefactor,
25197                cusolverRfBatchResetValues,
25198                cusolverRfBatchSetupHost,
25199                cusolverRfBatchSolve,
25200                cusolverRfBatchZeroPivot,
25201                cusolverRfCreate,
25202                cusolverRfDestroy,
25203                cusolverRfExtractBundledFactorsHost,
25204                cusolverRfExtractSplitFactorsHost,
25205                cusolverRfGetAlgs,
25206                cusolverRfGetMatrixFormat,
25207                cusolverRfGetNumericBoostReport,
25208                cusolverRfGetNumericProperties,
25209                cusolverRfGetResetValuesFastMode,
25210                cusolverRfRefactor,
25211                cusolverRfResetValues,
25212                cusolverRfSetAlgs,
25213                cusolverRfSetMatrixFormat,
25214                cusolverRfSetNumericProperties,
25215                cusolverRfSetResetValuesFastMode,
25216                cusolverRfSetupDevice,
25217                cusolverRfSetupHost,
25218                cusolverRfSolve,
25219                cusolverSpCcsreigsHost,
25220                cusolverSpCcsreigvsi,
25221                cusolverSpCcsreigvsiHost,
25222                cusolverSpCcsrlsqvqrHost,
25223                cusolverSpCcsrlsvchol,
25224                cusolverSpCcsrlsvcholHost,
25225                cusolverSpCcsrlsvluHost,
25226                cusolverSpCcsrlsvqr,
25227                cusolverSpCcsrlsvqrHost,
25228                cusolverSpCcsrqrBufferInfoBatched,
25229                cusolverSpCcsrqrsvBatched,
25230                cusolverSpCcsrzfdHost,
25231                cusolverSpCreate,
25232                cusolverSpCreateCsrqrInfo,
25233                cusolverSpDcsreigsHost,
25234                cusolverSpDcsreigvsi,
25235                cusolverSpDcsreigvsiHost,
25236                cusolverSpDcsrlsqvqrHost,
25237                cusolverSpDcsrlsvchol,
25238                cusolverSpDcsrlsvcholHost,
25239                cusolverSpDcsrlsvluHost,
25240                cusolverSpDcsrlsvqr,
25241                cusolverSpDcsrlsvqrHost,
25242                cusolverSpDcsrqrBufferInfoBatched,
25243                cusolverSpDcsrqrsvBatched,
25244                cusolverSpDcsrzfdHost,
25245                cusolverSpDestroy,
25246                cusolverSpDestroyCsrqrInfo,
25247                cusolverSpGetStream,
25248                cusolverSpScsreigsHost,
25249                cusolverSpScsreigvsi,
25250                cusolverSpScsreigvsiHost,
25251                cusolverSpScsrlsqvqrHost,
25252                cusolverSpScsrlsvchol,
25253                cusolverSpScsrlsvcholHost,
25254                cusolverSpScsrlsvluHost,
25255                cusolverSpScsrlsvqr,
25256                cusolverSpScsrlsvqrHost,
25257                cusolverSpScsrqrBufferInfoBatched,
25258                cusolverSpScsrqrsvBatched,
25259                cusolverSpScsrzfdHost,
25260                cusolverSpSetStream,
25261                cusolverSpXcsrissymHost,
25262                cusolverSpXcsrmetisndHost,
25263                cusolverSpXcsrpermHost,
25264                cusolverSpXcsrperm_bufferSizeHost,
25265                cusolverSpXcsrqrAnalysisBatched,
25266                cusolverSpXcsrsymamdHost,
25267                cusolverSpXcsrsymmdqHost,
25268                cusolverSpXcsrsymrcmHost,
25269                cusolverSpZcsreigsHost,
25270                cusolverSpZcsreigvsi,
25271                cusolverSpZcsreigvsiHost,
25272                cusolverSpZcsrlsqvqrHost,
25273                cusolverSpZcsrlsvchol,
25274                cusolverSpZcsrlsvcholHost,
25275                cusolverSpZcsrlsvluHost,
25276                cusolverSpZcsrlsvqr,
25277                cusolverSpZcsrlsvqrHost,
25278                cusolverSpZcsrqrBufferInfoBatched,
25279                cusolverSpZcsrqrsvBatched,
25280                cusolverSpZcsrzfdHost,
25281            })
25282        }
25283    }
25284    pub unsafe fn is_culib_present() -> bool {
25285        let lib_names = ["cusolver"];
25286        let choices = lib_names
25287            .iter()
25288            .map(|l| crate::get_lib_name_candidates(l))
25289            .flatten();
25290        for choice in choices {
25291            if Lib::new(choice).is_ok() {
25292                return true;
25293            }
25294        }
25295        false
25296    }
25297    pub unsafe fn culib() -> &'static Lib {
25298        static LIB: std::sync::OnceLock<Lib> = std::sync::OnceLock::new();
25299        LIB.get_or_init(|| {
25300            let lib_names = std::vec!["cusolver"];
25301            let choices: std::vec::Vec<_> = lib_names
25302                .iter()
25303                .map(|l| crate::get_lib_name_candidates(l))
25304                .flatten()
25305                .collect();
25306            for choice in choices.iter() {
25307                if let Ok(lib) = Lib::new(choice) {
25308                    return lib;
25309                }
25310            }
25311            crate::panic_no_lib_found(lib_names[0], &choices);
25312        })
25313    }
25314}
25315#[cfg(feature = "dynamic-loading")]
25316pub use loaded::*;