librsb_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.59.2 */
2
3pub const RSB_BOOL_TRUE: u32 = 1;
4pub const RSB_BOOL_FALSE: u32 = 0;
5pub const RSB_DEFAULT_ROW_BLOCKING: u32 = 1;
6pub const RSB_DEFAULT_COL_BLOCKING: u32 = 1;
7pub const RSB_DEFAULT_BLOCKING: u32 = 1;
8pub const RSB_CHAR_BIT: u32 = 8;
9pub const RSB_MIN_MATRIX_DIM: u32 = 0;
10pub const RSB_MIN_MATRIX_NNZ: u32 = 0;
11pub const RSB_NNZ_BLK_MAX: u32 = 255;
12pub const RSB_FLAG_NOFLAGS: u32 = 0;
13pub const RSB_FLAG_IDENTICAL_FLAGS: u32 = 0;
14pub const RSB_FLAG_FORTRAN_INDICES_INTERFACE: u32 = 1;
15pub const RSB_FLAG_C_INDICES_INTERFACE: u32 = 0;
16pub const RSB_FLAG_USE_HALFWORD_INDICES: u32 = 2;
17pub const RSB_FLAG_WANT_ROW_MAJOR_ORDER: u32 = 0;
18pub const RSB_FLAG_WANT_COLUMN_MAJOR_ORDER: u32 = 67108864;
19pub const RSB_FLAG_SORTED_INPUT: u32 = 4;
20pub const RSB_FLAG_TRIANGULAR: u32 = 8;
21pub const RSB_FLAG_LOWER: u32 = 16;
22pub const RSB_FLAG_UPPER: u32 = 32;
23pub const RSB_FLAG_UNIT_DIAG_IMPLICIT: u32 = 64;
24pub const RSB_FLAG_WANT_COO_STORAGE: u32 = 256;
25pub const RSB_FLAG_DUPLICATES_KEEP_LAST: u32 = 0;
26pub const RSB_FLAG_DUPLICATES_DEFAULT_HANDLE: u32 = 0;
27pub const RSB_FLAG_DUPLICATES_SUM: u32 = 512;
28pub const RSB_FLAG_DISCARD_ZEROS: u32 = 1024;
29pub const RSB_FLAG_QUAD_PARTITIONING: u32 = 8192;
30pub const RSB_FLAG_WANT_BCSS_STORAGE: u32 = 16384;
31pub const RSB_FLAG_ASSEMBLED_IN_COO_ARRAYS: u32 = 262144;
32pub const RSB_FLAG_EXPERIMENTAL_IN_PLACE_PERMUTATION_SORT: u32 = 524288;
33pub const RSB_FLAG_SYMMETRIC: u32 = 4194304;
34pub const RSB_FLAG_HERMITIAN: u32 = 8388608;
35pub const RSB_FLAG_RECURSIVE_MORE_LEAVES_THAN_THREADS: u32 = 16777216;
36pub const RSB_FLAG_LOWER_HERMITIAN: u32 = 8388624;
37pub const RSB_FLAG_UPPER_HERMITIAN: u32 = 8388640;
38pub const RSB_FLAG_LOWER_TRIANGULAR: u32 = 24;
39pub const RSB_FLAG_UPPER_TRIANGULAR: u32 = 40;
40pub const RSB_FLAG_LOWER_SYMMETRIC: u32 = 4194320;
41pub const RSB_FLAG_DIAGONAL: u32 = 48;
42pub const RSB_FLAG_UPPER_SYMMETRIC: u32 = 4194336;
43pub const RSB_FLAG_RECURSIVE_SUBDIVIDE_MORE_ON_DIAG: u32 = 134217728;
44pub const RSB_FLAG_EXTERNALLY_ALLOCATED_ARRAYS: u32 = 1073741824;
45pub const RSB_FLAG_USE_CSR_RESERVED: u32 = 2097152;
46pub const RSB_FLAG_USE_HALFWORD_INDICES_CSR: u32 = 2097154;
47pub const RSB_FLAG_USE_HALFWORD_INDICES_COO: u32 = 258;
48pub const RSB_FLAG_MUTUALLY_EXCLUSIVE_SWITCHES: u32 = 2097410;
49pub const RSB_PROGRAM_SUCCESS: u32 = 0;
50pub const RSB_PROGRAM_ERROR: u32 = 1;
51pub const RSB_IO_SPECIFIER_GET: u32 = 1;
52pub const RSB_IO_SPECIFIER_SET: u32 = 0;
53pub const RSB_MARF_RGB: u32 = 1;
54pub const RSB_MARF_EPS_S: u32 = 16;
55pub const RSB_MARF_EPS_B: u32 = 32;
56pub const RSB_MARF_EPS: u32 = 48;
57pub const RSB_MARF_EPS_L: u32 = 112;
58pub const RSB_PRECF_ILU0: u32 = 1;
59pub const RSB_LIBRSB_VER_STRING: &[u8; 6usize] = b"1.2.0\0";
60pub const RSB_HEADER_VERSION_STRING: &[u8; 60usize] =
61    b"librsb version 1.2.RSB_M4_WANT_LIBRSB_VER_PATCH9 - 20201204\0";
62pub const RSB_LIBRSB_VER_MAJOR: u32 = 1;
63pub const RSB_LIBRSB_VER_MINOR: u32 = 2;
64pub const RSB_LIBRSB_VER_PATCH: u32 = 0;
65pub const RSB_LIBRSB_VER: u32 = 10201;
66pub const RSB_LIBRSB_VER_DATE: u32 = 20201204;
67pub const RSB_HAVE_TYPE_DOUBLE: u32 = 1;
68pub const RSB_HAVE_TYPE_FLOAT: u32 = 1;
69pub const RSB_HAVE_TYPE_FLOAT_COMPLEX: u32 = 1;
70pub const RSB_HAVE_TYPE_DOUBLE_COMPLEX: u32 = 1;
71pub const RSB_DEFAULT_TYPE_STRING: &[u8; 7usize] = b"double\0";
72pub const RSB_DEFAULT_POSSIBLY_INTEGER_TYPE_STRING: &[u8; 7usize] = b"double\0";
73pub const RSB_TYPE_INDEX_DOUBLE: u32 = 0;
74pub const RSB_TYPE_INDEX_FLOAT: u32 = 1;
75pub const RSB_TYPE_INDEX_FLOAT_COMPLEX: u32 = 2;
76pub const RSB_TYPE_INDEX_DOUBLE_COMPLEX: u32 = 3;
77pub const RSB_HAVE_OPTYPE_SPMV_UAUA: u32 = 1;
78pub const RSB_HAVE_OPTYPE_SPMV_UAUZ: u32 = 1;
79pub const RSB_HAVE_OPTYPE_SPMV_UXUA: u32 = 1;
80pub const RSB_HAVE_OPTYPE_SPMV_UNUA: u32 = 1;
81pub const RSB_HAVE_OPTYPE_SPMV_SASA: u32 = 1;
82pub const RSB_HAVE_OPTYPE_SPSV_UXUA: u32 = 1;
83pub const RSB_HAVE_OPTYPE_SPMV_SXSA: u32 = 1;
84pub const RSB_HAVE_OPTYPE_SPSV_SXSX: u32 = 1;
85pub const RSB_HAVE_OPTYPE_INFTY_NORM: u32 = 1;
86pub const RSB_HAVE_OPTYPE_ROWSSUMS: u32 = 1;
87pub const RSB_HAVE_OPTYPE_SCALE: u32 = 1;
88pub const RSB_OPTYPE_INDEX_SPMV_UAUA: u32 = 0;
89pub const RSB_OPTYPE_INDEX_SPMV_UAUZ: u32 = 1;
90pub const RSB_OPTYPE_INDEX_SPMV_UXUA: u32 = 2;
91pub const RSB_OPTYPE_INDEX_SPMV_UNUA: u32 = 3;
92pub const RSB_OPTYPE_INDEX_SPMV_SASA: u32 = 4;
93pub const RSB_OPTYPE_INDEX_SPSV_UXUA: u32 = 5;
94pub const RSB_OPTYPE_INDEX_SPMV_SXSA: u32 = 6;
95pub const RSB_OPTYPE_INDEX_SPSV_SXSX: u32 = 7;
96pub const RSB_OPTYPE_INDEX_INFTY_NORM: u32 = 8;
97pub const RSB_OPTYPE_INDEX_ROWSSUMS: u32 = 9;
98pub const RSB_OPTYPE_INDEX_SCALE: u32 = 10;
99pub const RSB_OPTYPE_INDEX_MAT_STATS: u32 = 11;
100pub const RSB_COORDINATE_TYPE_C: u32 = 1;
101pub const RSB_COORDINATE_TYPE_H: u32 = 2;
102pub const RSB_TRANSPOSITION_N: u32 = 78;
103pub const RSB_TRANSPOSITION_T: u32 = 84;
104pub const RSB_TRANSPOSITION_C: u32 = 67;
105pub const RSB_TRANSPOSITION_INVALID: u32 = 63;
106pub const RSB_SYMMETRY_U: u32 = 0;
107pub const RSB_SYMMETRY_S: u32 = 4194304;
108pub const RSB_SYMMETRY_H: u32 = 8388608;
109pub const RSB_DIAGONAL_E: u32 = 1;
110pub const RSB_DIAGONAL_I: u32 = 2;
111pub const RSB_MATRIX_STORAGE_BCOR: u32 = 64;
112pub const RSB_MATRIX_STORAGE_BCSR: u32 = 1;
113pub const RSB_MATRIX_STORAGE_BCOR_STRING: &[u8; 5usize] = b"BCOR\0";
114pub const RSB_MATRIX_STORAGE_BCSR_STRING: &[u8; 5usize] = b"BCSR\0";
115pub const RSB_NUMERICAL_TYPE_SAME_TYPE: u32 = 1;
116pub const RSB_NUMERICAL_TYPE_DOUBLE: u8 = 68u8;
117pub const RSB_NUMERICAL_TYPE_FLOAT: u8 = 83u8;
118pub const RSB_NUMERICAL_TYPE_FLOAT_COMPLEX: u8 = 67u8;
119pub const RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX: u8 = 90u8;
120pub const RSB_NUMERICAL_TYPE_FORTRAN_SAME_TYPE: u32 = 1;
121pub const RSB_NUMERICAL_TYPE_DEFAULT: u8 = 68u8;
122pub const RSB_NUMERICAL_TYPE_DEFAULT_INTEGER: u8 = 68u8;
123pub const RSB_NUMERICAL_TYPE_INVALID_TYPE: u8 = 63u8;
124pub const RSB_NUMERICAL_TYPE_FIRST_BLAS: u8 = 83u8;
125pub const RSB_CONST_MAX_TUNING_ROUNDS: u32 = 16;
126pub const RSB_NUMERICAL_TYPE_PREPROCESSOR_SYMBOLS: &[u8; 9usize] = b"D S C Z \0";
127pub const RSB_NUMERICAL_TYPE_PATTERN: u32 = 0;
128pub const RSB_MATRIX_STORAGE_DOUBLE_PRINTF_STRING: &[u8; 6usize] = b"%.17g\0";
129pub const RSB_MATRIX_STORAGE_FLOAT_PRINTF_STRING: &[u8; 5usize] = b"%.9g\0";
130pub const RSB_MATRIX_STORAGE_FLOAT_COMPLEX_PRINTF_STRING: &[u8; 10usize] = b"%.9g %.9g\0";
131pub const RSB_MATRIX_STORAGE_DOUBLE_COMPLEX_PRINTF_STRING: &[u8; 12usize] = b"%.17g %.17g\0";
132pub const RSB_TRANSPOSITIONS_PREPROCESSOR_SYMBOLS: &[u8; 7usize] = b"n t c \0";
133pub const RSB_MAXIMAL_CONFIGURED_BLOCK_SIZE: u32 = 1;
134pub const RSB_MAXIMAL_CONFIGURED_BLOCK_SIZE_EXTRA: u32 = 0;
135pub const RSB_CONST_MATRIX_IMPLEMENTATION_CODE_STRING_MAX_LENGTH: u32 = 2048;
136pub const RSB_ROWS_UNROLL_ARRAY_LENGTH: u32 = 1;
137pub const RSB_COLUMNS_UNROLL_ARRAY_LENGTH: u32 = 1;
138pub const RSB_IMPLEMENTED_META_MOPS: u32 = 12;
139pub const RSB_IMPLEMENTED_MOPS: u32 = 11;
140pub const RSB_IMPLEMENTED_TYPES: u32 = 4;
141pub const RSB_IMPLEMENTED_SOME_BLAS_TYPES: u32 = 1;
142pub const RSB_M4_MATRIX_META_OPS_STRING : & [u8 ; 106usize] = b"spmv_uaua,spmv_uauz,spmv_uxua,spmv_unua,spmv_sasa,spsv_uxua,spmv_sxsa,spsv_sxsx,infty_norm,rowssums,scale\0" ;
143pub const RSB_M4_MATRIX_TYPES_STRING: &[u8; 42usize] =
144    b"double,float,float complex,double complex\0";
145pub const RSB_M4_WANT_COLUMN_UNLOOP_FACTORS_STRING: &[u8; 2usize] = b"1\0";
146pub const RSB_M4_WANT_ROW_UNLOOP_FACTORS_STRING: &[u8; 2usize] = b"1\0";
147pub const RSB_CC: &[u8; 4usize] = b"gcc\0";
148pub const RSB_CFLAGS: &[u8; 31usize] = b"-fPIC -g -O3 -fopenmp -std=c99\0";
149pub const RSB_COPYRIGHT_STRING: &[u8; 40usize] = b"Copyright (c) 2008-2021 Michele Martone\0";
150pub const RSB_HAVE_ASSERT_H: u32 = 1;
151pub const RSB_HAVE_COMPLEX_H: u32 = 1;
152pub const RSB_HAVE_CTYPE_H: u32 = 1;
153pub const RSB_HAVE_DLFCN_H: u32 = 1;
154pub const RSB_HAVE_DUP: u32 = 1;
155pub const RSB_HAVE_FILENO: u32 = 1;
156pub const RSB_HAVE_FREAD: u32 = 1;
157pub const RSB_HAVE_FWRITE: u32 = 1;
158pub const RSB_HAVE_GETENV: u32 = 1;
159pub const RSB_HAVE_GETHOSTNAME: u32 = 1;
160pub const RSB_HAVE_GETOPT_H: u32 = 1;
161pub const RSB_HAVE_GETOPT_LONG: u32 = 1;
162pub const RSB_HAVE_GETTIMEOFDAY: u32 = 1;
163pub const RSB_HAVE_GSL_GSL_SORT_H: u32 = 1;
164pub const RSB_HAVE_HWLOC_H: u32 = 1;
165pub const RSB_HAVE_INTTYPES_H: u32 = 1;
166pub const RSB_HAVE_ISATTY: u32 = 1;
167pub const RSB_HAVE_LIBGEN_H: u32 = 1;
168pub const RSB_HAVE_LIMITS_H: u32 = 1;
169pub const RSB_HAVE_MALLOC_H: u32 = 1;
170pub const RSB_HAVE_MATH_H: u32 = 1;
171pub const RSB_HAVE_MEMALIGN: u32 = 1;
172pub const RSB_HAVE_MEMORY_H: u32 = 1;
173pub const RSB_HAVE_MEMSET: u32 = 1;
174pub const RSB_HAVE_MLOCKALL: u32 = 1;
175pub const RSB_HAVE_OMP_H: u32 = 1;
176pub const RSB_HAVE_POSIX_MEMALIGN: u32 = 1;
177pub const RSB_HAVE_PTHREAD_H: u32 = 1;
178pub const RSB_HAVE_RAND: u32 = 1;
179pub const RSB_HAVE_REGEX_H: u32 = 1;
180pub const RSB_HAVE_SCHED_GETAFFINITY: u32 = 1;
181pub const RSB_HAVE_SCHED_H: u32 = 1;
182pub const RSB_HAVE_SETENV: u32 = 1;
183pub const RSB_HAVE_SIGNAL_H: u32 = 1;
184pub const RSB_HAVE_STDARG_H: u32 = 1;
185pub const RSB_HAVE_STDINT_H: u32 = 1;
186pub const RSB_HAVE_STDIO_H: u32 = 1;
187pub const RSB_HAVE_STDLIB_H: u32 = 1;
188pub const RSB_HAVE_STRINGS_H: u32 = 1;
189pub const RSB_HAVE_STRING_H: u32 = 1;
190pub const RSB_HAVE_STRNCMP: u32 = 1;
191pub const RSB_HAVE_SYSCONF: u32 = 1;
192pub const RSB_HAVE_SYS_MMAN_H: u32 = 1;
193pub const RSB_HAVE_SYS_RESOURCE_H: u32 = 1;
194pub const RSB_HAVE_SYS_STAT_H: u32 = 1;
195pub const RSB_HAVE_SYS_TYPES_H: u32 = 1;
196pub const RSB_HAVE_SYS_UTSNAME_H: u32 = 1;
197pub const RSB_HAVE_TIMES: u32 = 1;
198pub const RSB_HAVE_TIME_H: u32 = 1;
199pub const RSB_HAVE_UNISTD_H: u32 = 1;
200pub const RSB_HAVE_VPRINTF: u32 = 1;
201pub const RSB_HAVE_ZLIB_H: u32 = 1;
202pub const RSB_LT_OBJDIR: &[u8; 7usize] = b".libs/\0";
203pub const RSB_PACKAGE: &[u8; 7usize] = b"librsb\0";
204pub const RSB_PACKAGE_BUGREPORT: &[u8; 48usize] =
205    b"michelemartone_AT_users_DOT_sourceforge_DOT_net\0";
206pub const RSB_PACKAGE_NAME: &[u8; 7usize] = b"librsb\0";
207pub const RSB_PACKAGE_STRING: &[u8; 16usize] = b"librsb 1.2.0.10\0";
208pub const RSB_PACKAGE_TARNAME: &[u8; 7usize] = b"librsb\0";
209pub const RSB_PACKAGE_URL: &[u8; 1usize] = b"\0";
210pub const RSB_PACKAGE_VERSION: &[u8; 9usize] = b"1.2.0.10\0";
211pub const RSB_BLOCK_SMALL_INDICES: u32 = 1;
212pub const RSB_CONST_MAX_SUPPORTED_THREADS: u32 = 160;
213pub const RSB_DETECTED_MEM_HIERARCHY_INFO: &[u8; 41usize] =
214    b"L3:16/64/12288K,L2:4/64/256K,L1:8/64/32K\0";
215pub const RSB_DISABLE_ALLOCATOR_WRAPPER: u32 = 1;
216pub const RSB_INT_ERR_VERBOSITY: u32 = 0;
217pub const RSB_OUT_ERR_VERBOSITY: u32 = 0;
218pub const RSB_SORT_IN_PLACE: u32 = 0;
219pub const RSB_USER_SET_MEM_HIERARCHY_INFO: &[u8; 1usize] = b"\0";
220pub const RSB_WANT_ACTION_SIGNAL: u32 = 1;
221pub const RSB_WANT_ALLOCATOR_LIMITS: u32 = 0;
222pub const RSB_WANT_DMALLOC: u32 = 0;
223pub const RSB_WANT_DOUBLE_ALIGNED: u32 = 1;
224pub const RSB_WANT_IO_LEVEL: u32 = 7;
225pub const RSB_WANT_KERNELS_DEBUG: u32 = 1;
226pub const RSB_WANT_MKL: u32 = 0;
227pub const RSB_WANT_OMPIO_SUPPORT: u32 = 0;
228pub const RSB_WANT_OMP_RECURSIVE_KERNELS: u32 = 1;
229pub const RSB_WANT_SPARSE_BLAS_LEVEL_1: u32 = 1;
230pub const RSB_WANT_VERBOSE_MESSAGES: u32 = 0;
231pub const RSB_WANT_XDR_SUPPORT: u32 = 0;
232pub const RSB_WANT_ZLIB_SUPPORT: u32 = 0;
233pub const RSB_WITH_HWLOC: u32 = 0;
234pub const RSB_WITH_LIKWID: u32 = 0;
235pub const RSB_WITH_SPARSE_BLAS_INTERFACE: u32 = 1;
236pub const RSB_SIZEOF_CHAR: u32 = 1;
237pub const RSB_SIZEOF_COMPLEX: u32 = 0;
238pub const RSB_SIZEOF_DOUBLE: u32 = 8;
239pub const RSB_SIZEOF_DOUBLE_COMPLEX: u32 = 0;
240pub const RSB_SIZEOF_FLOAT: u32 = 4;
241pub const RSB_SIZEOF_FLOAT_COMPLEX: u32 = 0;
242pub const RSB_SIZEOF_INT: u32 = 4;
243pub const RSB_SIZEOF_LONG: u32 = 8;
244pub const RSB_SIZEOF_LONG_DOUBLE: u32 = 16;
245pub const RSB_SIZEOF_LONG_INT: u32 = 8;
246pub const RSB_SIZEOF_LONG_LONG_INT: u32 = 8;
247pub const RSB_SIZEOF_SHORT_INT: u32 = 2;
248pub const RSB_SIZEOF_SIZE_T: u32 = 8;
249pub const RSB_SIZEOF_VOID_P: u32 = 8;
250pub const RSB_STDC_HEADERS: u32 = 1;
251pub const RSB_SVN_REVISION: &[u8; 22usize] = b"Unversioned directory\0";
252pub const RSB_VERSION: &[u8; 9usize] = b"1.2.0.10\0";
253pub type size_t = ::std::os::raw::c_ulong;
254#[doc = "\\name Type definitions"]
255#[doc = "\\anchor definitions_section"]
256#[doc = ""]
257#[doc = "These are definitions of \\librsb base types."]
258#[doc = " The block arrays index type."]
259#[doc = ""]
260#[doc = " Could be an unsigned type."]
261#[doc = " Should not overflow when indexing matrix blocks by block coordinates."]
262pub type rsb_blk_idx_t = ::std::os::raw::c_int;
263#[doc = " The coordinate arrays index type."]
264#[doc = ""]
265#[doc = " Should not overflow when indexing matrix elements by coordinates."]
266#[doc = " Legal values when specifying a matrix size should be within #RSB_MIN_MATRIX_DIM and #RSB_MAX_MATRIX_DIM"]
267pub type rsb_coo_idx_t = ::std::os::raw::c_int;
268#[doc = " The nnz counter index type."]
269#[doc = ""]
270#[doc = " Should not overflow when indexing matrix elements."]
271#[doc = " On most common archs sizeof(long)>=sizeof(int)."]
272#[doc = " Legal values when specifying a matrix size should be within #RSB_MIN_MATRIX_NNZ and #RSB_MAX_MATRIX_NNZ"]
273pub type rsb_nnz_idx_t = ::std::os::raw::c_int;
274#[doc = "A type for specifying matrix assembly or coordinate conversions option flags."]
275#[doc = "Should be >= 4 bytes."]
276#[doc = "See \\ref flags_section for possible values."]
277pub type rsb_flags_t = ::std::os::raw::c_int;
278#[doc = "A type for specifying numerical type codes (See \\ref matrix_type_symbols_section for a list of valid values)."]
279#[repr(transparent)]
280#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
281pub struct rsb_type_t(pub ::std::os::raw::c_char);
282#[doc = "A type specific for error flags."]
283#[doc = "Should be >= 4 bytes."]
284#[doc = ""]
285#[doc = "A textual description of an error value may be obtained via #rsb_strerror_r() or #rsb_perror()."]
286#[repr(transparent)]
287#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
288pub struct rsb_err_t(pub ::std::os::raw::c_int);
289#[doc = "An integer type declaration for interface functions."]
290#[doc = "Should always be 'int'."]
291pub type rsb_int_t = ::std::os::raw::c_int;
292#[doc = " A boolean type."]
293pub type rsb_bool_t = rsb_flags_t;
294#[doc = " The type for specifying transposition (See \\ref matrix_transposition_flags_section)"]
295#[repr(transparent)]
296#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
297pub struct rsb_trans_t(pub rsb_flags_t);
298#[doc = "  A floating point numerical type."]
299pub type rsb_real_t = f64;
300#[doc = "A type for character strings."]
301pub type rsb_char_t = ::std::os::raw::c_char;
302#[doc = "  A floating point numerical type for time measurements with #rsb_time()."]
303pub type rsb_time_t = rsb_real_t;
304extern "C" {
305    pub fn rsb_strerror_r(errval: rsb_err_t, buf: *mut rsb_char_t, buflen: size_t) -> rsb_err_t;
306}
307extern "C" {
308    pub fn rsb_perror(stream: *mut ::std::os::raw::c_void, errval: rsb_err_t) -> rsb_err_t;
309}
310#[repr(u32)]
311#[doc = " \\ingroup rsb_doc_misc rsb_doc_rsb"]
312#[doc = "\\brief library option values for \\see_lib_init_funcs."]
313#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
314pub enum rsb_opt_t {
315    #[doc = " #RSB_IO_WANT_VERBOSE_INIT prompts for a verbose initialization of the library: messages will be written"]
316    #[doc = " to the file descriptor (\\c FILE*) pointed by the value pointer when calling \\ref rsb_lib_init."]
317    RSB_IO_WANT_VERBOSE_INIT = 1,
318    #[doc = " #RSB_IO_WANT_VERBOSE_EXIT prompts for a verbose finalization of the library: messages will be written"]
319    #[doc = " to the file descriptor (\\c FILE*) pointed by the value pointer when calling \\ref rsb_lib_exit."]
320    RSB_IO_WANT_VERBOSE_EXIT = 2,
321    #[doc = " Specifies the default output stream. Output (debug info) info will be written"]
322    #[doc = " to the file descriptor (\\c FILE*) pointed by the value pointer."]
323    RSB_IO_WANT_OUTPUT_STREAM = 3,
324    #[doc = " Specifies the default sorting method. Specified as a pointed integer (#rsb_int_t) number, in {[0],1}. (internal)"]
325    RSB_IO_WANT_SORT_METHOD = 4,
326    #[doc = " Specifies the default cache blocking method. Specified as a pointed integer (#rsb_int_t) number, in {-1,[0],1}. (internal)"]
327    RSB_IO_WANT_CACHE_BLOCKING_METHOD = 5,
328    #[doc = " Specifies a multiplier for finer (if >1.0) or coarser (if <1.0) subdivisions. Specified as a pointed (#rsb_real_t) number, in {..,[1.0],..}. (internal)"]
329    RSB_IO_WANT_SUBDIVISION_MULTIPLIER = 6,
330    #[doc = " Prompts for a verbose error reporting: messages will be written"]
331    #[doc = " to the file descriptor (\\c FILE*) pointed by the value pointer. Only meaningful if an"]
332    #[doc = " interface error verbosity greater than 0 was set at configure time."]
333    RSB_IO_WANT_VERBOSE_ERRORS = 7,
334    #[doc = " Prompts for bounded box computation, for a smoother submatrices locking; pointed #rsb_int_t in {0,[1]}. (internal)."]
335    RSB_IO_WANT_BOUNDED_BOX_COMPUTATION = 8,
336    #[doc = " Specifies the number of desired executing threads; pointed #rsb_int_t in {[0],1,..}."]
337    RSB_IO_WANT_EXECUTING_THREADS = 9,
338    #[doc = " Specifies the level of interface verbosity; if setting, pointed #rsb_int_t values should be in {[0],1,..}. Support may be enabled or disabled at build time via the \\c --enable-internals-error-verbosity configure option. If disabled, only getting is supported and yields -1, but setting is not supported and the #RSB_ERR_NO_STREAM_OUTPUT_CONFIGURED_OUT error will be returned."]
339    RSB_IO_WANT_EXTRA_VERBOSE_INTERFACE = 16,
340    #[doc = " Specifies a custom memory hierarchy info string; pointed \\c const #rsb_char_t*; (may point to a NULL string pointer)."]
341    RSB_IO_WANT_MEMORY_HIERARCHY_INFO_STRING = 17,
342    #[doc = " Used for getting whether the library has been initialized (#RSB_BOOL_TRUE) or not (#RSB_BOOL_FALSE) ; pointed \\c const #rsb_bool_t*; (this is NOT for general users)."]
343    RSB_IO_WANT_IS_INITIALIZED_MARKER = 18,
344    #[doc = " Used for getting the count of memory allocations performed by librsb employing librsb's memory allocation wrapper (if disabled, will return zero); pointed \\c const \\c size_t*; (this is for debugging purposes)."]
345    RSB_IO_WANT_MEM_ALLOC_CNT = 19,
346    #[doc = " Used for getting the total amount of memory allocated by librsb employing librsb's memory allocation wrapper (if disabled, will return zero); pointed \\c const \\c size_t*; (this is for debugging purposes)."]
347    RSB_IO_WANT_MEM_ALLOC_TOT = 20,
348    #[doc = " Specifies whether the default multi-vector ops shall act at a leaf level (default value of 0 is yes). Specified as a pointed integer (#rsb_int_t) number, in {-1,[0]}. (internal)"]
349    RSB_IO_WANT_LEAF_LEVEL_MULTIVEC = 21,
350    #[doc = " Specifies an upper limit to the count of allocated memory areas (default value of 0 means no limit). Specified as a pointed \\c size_t. \\rsb_configure_memwrap"]
351    RSB_IO_WANT_MAX_MEMORY_ALLOCATIONS = 22,
352    #[doc = " Specifies an upper limit to the amount of allocated memory (default value of 0 means no limit). Specified as a pointed \\c size_t. \\rsb_configure_memwrap"]
353    RSB_IO_WANT_MAX_MEMORY_ALLOCATED = 23,
354    #[doc = " Represents time spent in librsb. Specified as a pointed #rsb_time_t. Only works if statistics collection (\\c --enable-librsb-stats) was specified at configure time."]
355    RSB_IO_WANT_LIBRSB_ETIME = 24,
356    #[doc = " Auto tuning verbosity level for rsb_tune_spmm/rsb_tune_spsm. If 0, no verbosity; if 1, verbose; if 2, verbose with trace files being dumped."]
357    RSB_IO_WANT_VERBOSE_TUNING = 25,
358}
359#[doc = " @brief A structure specifying library (initialization) options, to be used with the \\ref rsb_lib_reinit() function."]
360#[doc = " \\n"]
361#[doc = ""]
362#[doc = " The structure specifies, for \\c i=0,..,n_pairs-1 , a list of (key,value)"]
363#[doc = " pairs, stored respectively as (\\c keys[i],values[i])."]
364#[doc = " \\n"]
365#[doc = " Each flag specifies the type and possible range of values it accepts."]
366#[doc = " \\n"]
367#[doc = " The structure may he used to set or query various library parameters."]
368#[doc = ""]
369#[doc = " Example:"]
370#[doc = " \\code"]
371#[doc = "const int max_io=10; // the number of different options we want to set"]
372#[doc = "struct rsb_initopts io={NULL,NULL,0,RSB_IO_SPECIFIER_SET},"]
373#[doc = "iop=&io; // pointer to the options structure"]
374#[doc = "void * io_values[max_io]; // an array of pointers to max_io different option values (we shall set)"]
375#[doc = "enum rsb_opt_t io_keys[max_io]; // an array of max_io flag values specifying the type of values we are handing over to the library"]
376#[doc = "io.keys=io_keys; // io.keys will now point to io_keys as its keys array"]
377#[doc = "io.values=io_values; // io.values will now point to io_keys as its values array"]
378#[doc = "io.n_pairs=0; // we have 0 pairs specified so far"]
379#[doc = "io.keys[io.n_pairs]=RSB_IO_WANT_BOUNDED_BOX_COMPUTATION; // the first (at index 0) option we want to specify is RSB_IO_WANT_BOUNDED_BOX_COMPUTATION"]
380#[doc = "io.values[io.n_pairs]=1; // the value we want to set the RSB_IO_WANT_BOUNDED_BOX_COMPUTATION option to"]
381#[doc = "io.n_pairs++; // io.n_pairs is set to 1: we have one option set, so even if we have (max_io-io.n_pairs) left, only the first will be read"]
382#[doc = "... // we are free to specify other option (type, value) pairs"]
383#[doc = " \\endcode"]
384#[repr(C)]
385#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
386pub struct rsb_initopts {
387    #[doc = " An array of value types key flags."]
388    pub keys: *mut rsb_opt_t,
389    #[doc = " An array of value pointers, as specified by each flag value."]
390    pub values: *mut *mut ::std::os::raw::c_void,
391    #[doc = " The length of the \\c keys and \\c values arrays."]
392    pub n_pairs: rsb_int_t,
393    #[doc = " The action we are requesting (either one of #RSB_IO_SPECIFIER_GET or #RSB_IO_SPECIFIER_SET)"]
394    pub action: rsb_int_t,
395}
396#[test]
397fn bindgen_test_layout_rsb_initopts() {
398    assert_eq!(
399        ::std::mem::size_of::<rsb_initopts>(),
400        24usize,
401        concat!("Size of: ", stringify!(rsb_initopts))
402    );
403    assert_eq!(
404        ::std::mem::align_of::<rsb_initopts>(),
405        8usize,
406        concat!("Alignment of ", stringify!(rsb_initopts))
407    );
408    assert_eq!(
409        unsafe { &(*(::std::ptr::null::<rsb_initopts>())).keys as *const _ as usize },
410        0usize,
411        concat!(
412            "Offset of field: ",
413            stringify!(rsb_initopts),
414            "::",
415            stringify!(keys)
416        )
417    );
418    assert_eq!(
419        unsafe { &(*(::std::ptr::null::<rsb_initopts>())).values as *const _ as usize },
420        8usize,
421        concat!(
422            "Offset of field: ",
423            stringify!(rsb_initopts),
424            "::",
425            stringify!(values)
426        )
427    );
428    assert_eq!(
429        unsafe { &(*(::std::ptr::null::<rsb_initopts>())).n_pairs as *const _ as usize },
430        16usize,
431        concat!(
432            "Offset of field: ",
433            stringify!(rsb_initopts),
434            "::",
435            stringify!(n_pairs)
436        )
437    );
438    assert_eq!(
439        unsafe { &(*(::std::ptr::null::<rsb_initopts>())).action as *const _ as usize },
440        20usize,
441        concat!(
442            "Offset of field: ",
443            stringify!(rsb_initopts),
444            "::",
445            stringify!(action)
446        )
447    );
448}
449extern "C" {
450    pub fn rsb_lib_init(iop: *mut rsb_initopts) -> rsb_err_t;
451}
452extern "C" {
453    pub fn rsb_lib_reinit(iop: *mut rsb_initopts) -> rsb_err_t;
454}
455extern "C" {
456    pub fn rsb_lib_set_opt_str(opnp: *const rsb_char_t, opvp: *const rsb_char_t) -> rsb_err_t;
457}
458extern "C" {
459    pub fn rsb_lib_set_opt(iof: rsb_opt_t, iop: *const ::std::os::raw::c_void) -> rsb_err_t;
460}
461extern "C" {
462    pub fn rsb_lib_get_opt(iof: rsb_opt_t, iop: *mut ::std::os::raw::c_void) -> rsb_err_t;
463}
464extern "C" {
465    pub fn rsb_lib_exit(iop: *mut rsb_initopts) -> rsb_err_t;
466}
467#[repr(C)]
468#[derive(Debug, Copy, Clone)]
469pub struct rsb_mtx_t {
470    _unused: [u8; 0],
471}
472extern "C" {
473    pub fn rsb_mtx_alloc_from_coo_begin(
474        nnzA: rsb_nnz_idx_t,
475        typecode: rsb_type_t,
476        nrA: rsb_coo_idx_t,
477        ncA: rsb_coo_idx_t,
478        flagsA: rsb_flags_t,
479        errvalp: *mut rsb_err_t,
480    ) -> *mut rsb_mtx_t;
481}
482extern "C" {
483    pub fn rsb_mtx_alloc_from_coo_end(mtxApp: *mut *mut rsb_mtx_t) -> rsb_err_t;
484}
485extern "C" {
486    pub fn rsb_mtx_alloc_from_csr_const(
487        VA: *const ::std::os::raw::c_void,
488        RP: *const rsb_coo_idx_t,
489        JA: *const rsb_coo_idx_t,
490        nnzA: rsb_nnz_idx_t,
491        typecode: rsb_type_t,
492        nrA: rsb_coo_idx_t,
493        ncA: rsb_coo_idx_t,
494        brA: rsb_blk_idx_t,
495        bcA: rsb_blk_idx_t,
496        flagsA: rsb_flags_t,
497        errvalp: *mut rsb_err_t,
498    ) -> *mut rsb_mtx_t;
499}
500extern "C" {
501    pub fn rsb_mtx_alloc_from_csc_const(
502        VA: *const ::std::os::raw::c_void,
503        IA: *const rsb_coo_idx_t,
504        CP: *const rsb_coo_idx_t,
505        nnzA: rsb_nnz_idx_t,
506        typecode: rsb_type_t,
507        nrA: rsb_coo_idx_t,
508        ncA: rsb_coo_idx_t,
509        brA: rsb_blk_idx_t,
510        bcA: rsb_blk_idx_t,
511        flagsA: rsb_flags_t,
512        errvalp: *mut rsb_err_t,
513    ) -> *mut rsb_mtx_t;
514}
515extern "C" {
516    pub fn rsb_mtx_alloc_from_csr_inplace(
517        VA: *mut ::std::os::raw::c_void,
518        RP: *mut rsb_nnz_idx_t,
519        JA: *mut rsb_coo_idx_t,
520        nnzA: rsb_nnz_idx_t,
521        typecode: rsb_type_t,
522        nrA: rsb_coo_idx_t,
523        ncA: rsb_coo_idx_t,
524        brA: rsb_blk_idx_t,
525        bcA: rsb_blk_idx_t,
526        flagsA: rsb_flags_t,
527        errvalp: *mut rsb_err_t,
528    ) -> *mut rsb_mtx_t;
529}
530extern "C" {
531    pub fn rsb_mtx_alloc_from_coo_const(
532        VA: *const ::std::os::raw::c_void,
533        IA: *const rsb_coo_idx_t,
534        JA: *const rsb_coo_idx_t,
535        nnzA: rsb_nnz_idx_t,
536        typecode: rsb_type_t,
537        nrA: rsb_coo_idx_t,
538        ncA: rsb_coo_idx_t,
539        brA: rsb_blk_idx_t,
540        bcA: rsb_blk_idx_t,
541        flagsA: rsb_flags_t,
542        errvalp: *mut rsb_err_t,
543    ) -> *mut rsb_mtx_t;
544}
545extern "C" {
546    pub fn rsb_mtx_alloc_from_coo_inplace(
547        VA: *mut ::std::os::raw::c_void,
548        IA: *mut rsb_coo_idx_t,
549        JA: *mut rsb_coo_idx_t,
550        nnzA: rsb_nnz_idx_t,
551        typecode: rsb_type_t,
552        nrA: rsb_coo_idx_t,
553        ncA: rsb_coo_idx_t,
554        brA: rsb_blk_idx_t,
555        bcA: rsb_blk_idx_t,
556        flagsA: rsb_flags_t,
557        errvalp: *mut rsb_err_t,
558    ) -> *mut rsb_mtx_t;
559}
560extern "C" {
561    pub fn rsb_mtx_clone(
562        mtxBpp: *mut *mut rsb_mtx_t,
563        typecode: rsb_type_t,
564        transA: rsb_trans_t,
565        alphap: *const ::std::os::raw::c_void,
566        mtxAp: *const rsb_mtx_t,
567        flags: rsb_flags_t,
568    ) -> rsb_err_t;
569}
570extern "C" {
571    pub fn rsb_mtx_free(mtxAp: *mut rsb_mtx_t) -> *mut rsb_mtx_t;
572}
573#[repr(u32)]
574#[doc = " \\ingroup rsb_doc_misc rsb_doc_rsb"]
575#[doc = "\\brief Extraction filter flags, to be used with #rsb_mtx_get_nrm()/#rsb_mtx_get_vec()."]
576#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
577pub enum rsb_extff_t {
578    #[doc = "< #rsb_mtx_get_nrm() flag value for computing the one-norm."]
579    RSB_EXTF_NORM_ONE = 4097,
580    #[doc = "< #rsb_mtx_get_nrm() flag value for computing the two-norm (Frobenius norm)."]
581    RSB_EXTF_NORM_TWO = 4098,
582    #[doc = "< #rsb_mtx_get_nrm() flag value for computing the infinity-norm."]
583    RSB_EXTF_NORM_INF = 4099,
584    #[doc = "< #rsb_mtx_get_vec() flag value for computing the sum along each row."]
585    RSB_EXTF_SUMS_ROW = 4100,
586    #[doc = "< #rsb_mtx_get_vec() flag value for computing the sum along each column."]
587    RSB_EXTF_SUMS_COL = 4101,
588    #[doc = "< #rsb_mtx_get_vec() flag value for computing the absolute values sum, along each row."]
589    RSB_EXTF_ASUMS_ROW = 4102,
590    #[doc = "< #rsb_mtx_get_vec() flag value for computing the absolute values sum, along each column."]
591    RSB_EXTF_ASUMS_COL = 4103,
592    #[doc = "< #rsb_mtx_get_vec() flag value for extracting the diagonal submatrix."]
593    RSB_EXTF_DIAG = 4,
594}
595pub type rsb_marf_t = rsb_flags_t;
596extern "C" {
597    #[doc = "@}"]
598    pub fn rsb_mtx_get_nrm(
599        mtxAp: *const rsb_mtx_t,
600        Np: *mut ::std::os::raw::c_void,
601        flags: rsb_extff_t,
602    ) -> rsb_err_t;
603}
604extern "C" {
605    pub fn rsb_mtx_get_vec(
606        mtxAp: *const rsb_mtx_t,
607        Dp: *mut ::std::os::raw::c_void,
608        flags: rsb_extff_t,
609    ) -> rsb_err_t;
610}
611extern "C" {
612    pub fn rsb_mtx_rndr(
613        filename: *const rsb_char_t,
614        mtxAp: *const rsb_mtx_t,
615        pmWidth: rsb_coo_idx_t,
616        pmHeight: rsb_coo_idx_t,
617        rflags: rsb_marf_t,
618    ) -> rsb_err_t;
619}
620extern "C" {
621    pub fn rsb_file_mtx_rndr(
622        pmp: *mut ::std::os::raw::c_void,
623        filename: *const rsb_char_t,
624        pmlWidth: rsb_coo_idx_t,
625        pmWidth: rsb_coo_idx_t,
626        pmHeight: rsb_coo_idx_t,
627        rflags: rsb_marf_t,
628    ) -> rsb_err_t;
629}
630extern "C" {
631    pub fn rsb_spmv(
632        transA: rsb_trans_t,
633        alphap: *const ::std::os::raw::c_void,
634        mtxAp: *const rsb_mtx_t,
635        Xp: *const ::std::os::raw::c_void,
636        incX: rsb_coo_idx_t,
637        betap: *const ::std::os::raw::c_void,
638        Yp: *mut ::std::os::raw::c_void,
639        incY: rsb_coo_idx_t,
640    ) -> rsb_err_t;
641}
642extern "C" {
643    pub fn rsb_spmm(
644        transA: rsb_trans_t,
645        alphap: *const ::std::os::raw::c_void,
646        mtxAp: *const rsb_mtx_t,
647        nrhs: rsb_coo_idx_t,
648        order: rsb_flags_t,
649        Bp: *const ::std::os::raw::c_void,
650        ldB: rsb_nnz_idx_t,
651        betap: *const ::std::os::raw::c_void,
652        Cp: *mut ::std::os::raw::c_void,
653        ldC: rsb_nnz_idx_t,
654    ) -> rsb_err_t;
655}
656extern "C" {
657    pub fn rsb_spsv(
658        transT: rsb_trans_t,
659        alphap: *const ::std::os::raw::c_void,
660        mtxTp: *const rsb_mtx_t,
661        Xp: *const ::std::os::raw::c_void,
662        incX: rsb_coo_idx_t,
663        Yp: *mut ::std::os::raw::c_void,
664        incY: rsb_coo_idx_t,
665    ) -> rsb_err_t;
666}
667extern "C" {
668    pub fn rsb_spsm(
669        transT: rsb_trans_t,
670        alphap: *const ::std::os::raw::c_void,
671        mtxTp: *const rsb_mtx_t,
672        nrhs: rsb_coo_idx_t,
673        order: rsb_flags_t,
674        betap: *const ::std::os::raw::c_void,
675        Bp: *const ::std::os::raw::c_void,
676        ldB: rsb_nnz_idx_t,
677        Cp: *mut ::std::os::raw::c_void,
678        ldC: rsb_nnz_idx_t,
679    ) -> rsb_err_t;
680}
681extern "C" {
682    pub fn rsb_mtx_add_to_dense(
683        alphap: *const ::std::os::raw::c_void,
684        mtxAp: *const rsb_mtx_t,
685        ldB: rsb_nnz_idx_t,
686        nrB: rsb_nnz_idx_t,
687        ncB: rsb_nnz_idx_t,
688        rowmajorB: rsb_bool_t,
689        Bp: *mut ::std::os::raw::c_void,
690    ) -> rsb_err_t;
691}
692extern "C" {
693    pub fn rsb_sppsp(
694        typecode: rsb_type_t,
695        transA: rsb_trans_t,
696        alphap: *const ::std::os::raw::c_void,
697        mtxAp: *const rsb_mtx_t,
698        transB: rsb_trans_t,
699        betap: *const ::std::os::raw::c_void,
700        mtxBp: *const rsb_mtx_t,
701        errvalp: *mut rsb_err_t,
702    ) -> *mut rsb_mtx_t;
703}
704extern "C" {
705    pub fn rsb_spmsp(
706        typecode: rsb_type_t,
707        transA: rsb_trans_t,
708        alphap: *const ::std::os::raw::c_void,
709        mtxAp: *const rsb_mtx_t,
710        transB: rsb_trans_t,
711        betap: *const ::std::os::raw::c_void,
712        mtxBp: *const rsb_mtx_t,
713        errvalp: *mut rsb_err_t,
714    ) -> *mut rsb_mtx_t;
715}
716extern "C" {
717    pub fn rsb_spmsp_to_dense(
718        typecode: rsb_type_t,
719        transA: rsb_trans_t,
720        alphap: *const ::std::os::raw::c_void,
721        mtxAp: *const rsb_mtx_t,
722        transB: rsb_trans_t,
723        betap: *const ::std::os::raw::c_void,
724        mtxBp: *const rsb_mtx_t,
725        ldC: rsb_nnz_idx_t,
726        nrC: rsb_nnz_idx_t,
727        ncC: rsb_nnz_idx_t,
728        rowmajorC: rsb_bool_t,
729        Cp: *mut ::std::os::raw::c_void,
730    ) -> rsb_err_t;
731}
732extern "C" {
733    pub fn rsb_mtx_switch_to_coo(
734        mtxAp: *mut rsb_mtx_t,
735        VAp: *mut *mut ::std::os::raw::c_void,
736        IAp: *mut *mut rsb_coo_idx_t,
737        JAp: *mut *mut rsb_coo_idx_t,
738        flags: rsb_flags_t,
739    ) -> rsb_err_t;
740}
741extern "C" {
742    pub fn rsb_mtx_switch_to_csr(
743        mtxAp: *mut rsb_mtx_t,
744        VAp: *mut *mut ::std::os::raw::c_void,
745        IAp: *mut *mut rsb_coo_idx_t,
746        JAp: *mut *mut rsb_coo_idx_t,
747        flags: rsb_flags_t,
748    ) -> rsb_err_t;
749}
750extern "C" {
751    pub fn rsb_mtx_get_coo(
752        mtxAp: *const rsb_mtx_t,
753        VA: *mut ::std::os::raw::c_void,
754        IA: *mut rsb_coo_idx_t,
755        JA: *mut rsb_coo_idx_t,
756        flags: rsb_flags_t,
757    ) -> rsb_err_t;
758}
759extern "C" {
760    pub fn rsb_mtx_get_csr(
761        typecode: rsb_type_t,
762        mtxAp: *const rsb_mtx_t,
763        VA: *mut ::std::os::raw::c_void,
764        RP: *mut rsb_nnz_idx_t,
765        JA: *mut rsb_coo_idx_t,
766        flags: rsb_flags_t,
767    ) -> rsb_err_t;
768}
769extern "C" {
770    pub fn rsb_mtx_get_rows_sparse(
771        transA: rsb_trans_t,
772        alphap: *const ::std::os::raw::c_void,
773        mtxAp: *const rsb_mtx_t,
774        VA: *mut ::std::os::raw::c_void,
775        IA: *mut rsb_coo_idx_t,
776        JA: *mut rsb_coo_idx_t,
777        frA: rsb_coo_idx_t,
778        lrA: rsb_coo_idx_t,
779        rnzp: *mut rsb_nnz_idx_t,
780        flags: rsb_flags_t,
781    ) -> rsb_err_t;
782}
783extern "C" {
784    pub fn rsb_mtx_get_coo_block(
785        mtxAp: *const rsb_mtx_t,
786        VA: *mut ::std::os::raw::c_void,
787        IA: *mut rsb_coo_idx_t,
788        JA: *mut rsb_coo_idx_t,
789        frA: rsb_coo_idx_t,
790        lrA: rsb_coo_idx_t,
791        fcA: rsb_coo_idx_t,
792        lcA: rsb_coo_idx_t,
793        IREN: *const rsb_coo_idx_t,
794        JREN: *const rsb_coo_idx_t,
795        rnzp: *mut rsb_nnz_idx_t,
796        flags: rsb_flags_t,
797    ) -> rsb_err_t;
798}
799#[repr(u32)]
800#[doc = " \\ingroup rsb_doc_misc rsb_doc_rsb"]
801#[doc = "\\brief Flags for getting matrix information via #rsb_mtx_get_info()/#rsb_mtx_get_info_str()."]
802#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
803pub enum rsb_mif_t {
804    #[doc = "< Index storage occupation, in bytes. (size_t)"]
805    RSB_MIF_INDEX_STORAGE_IN_BYTES__TO__SIZE_T = 1,
806    #[doc = "< Index storage occupation per nnz, in bytes. (#rsb_real_t)"]
807    RSB_MIF_INDEX_STORAGE_IN_BYTES_PER_NNZ__TO__RSB_REAL_T = 2,
808    #[doc = "< Rows count(#rsb_coo_idx_t)"]
809    RSB_MIF_MATRIX_ROWS__TO__RSB_COO_INDEX_T = 4,
810    #[doc = "< Columns count (#rsb_coo_idx_t)"]
811    RSB_MIF_MATRIX_COLS__TO__RSB_COO_INDEX_T = 8,
812    #[doc = "< Nonzeroes count (#rsb_nnz_idx_t)"]
813    RSB_MIF_MATRIX_NNZ__TO__RSB_NNZ_INDEX_T = 16,
814    #[doc = "< Total size, in bytes (size_t)"]
815    RSB_MIF_TOTAL_SIZE__TO__SIZE_T = 32,
816    #[doc = "< Matrix flags (#rsb_flags_t)"]
817    RSB_MIF_MATRIX_FLAGS__TO__RSB_FLAGS_T = 64,
818    #[doc = "< Matrix type code (#rsb_type_t)"]
819    RSB_MIF_MATRIX_TYPECODE__TO__RSB_TYPE_T = 128,
820    #[doc = "< Matrix info string, only for #rsb_mtx_get_info_str() (#rsb_char_t*)"]
821    RSB_MIF_MATRIX_INFO__TO__CHAR_P = 256,
822    #[doc = "< Leaf submatrices count (#rsb_blk_idx_t)"]
823    RSB_MIF_LEAVES_COUNT__TO__RSB_BLK_INDEX_T = 512,
824}
825extern "C" {
826    pub fn rsb_mtx_get_info(
827        mtxAp: *const rsb_mtx_t,
828        miflags: rsb_mif_t,
829        minfop: *mut ::std::os::raw::c_void,
830    ) -> rsb_err_t;
831}
832extern "C" {
833    pub fn rsb_mtx_get_info_str(
834        mtxAp: *const rsb_mtx_t,
835        mis: *const rsb_char_t,
836        minfop: *mut ::std::os::raw::c_void,
837        buflen: size_t,
838    ) -> rsb_err_t;
839}
840#[repr(u32)]
841#[doc = " \\ingroup rsb_doc_misc rsb_doc_rsb"]
842#[doc = "\\brief Flags for specifying a particular elemental/row-wise operation with #rsb_mtx_upd_vals()."]
843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
844pub enum rsb_elopf_t {
845    #[doc = "< Elemental multiplication of the matrix by a specified scalar (usable with #rsb_mtx_upd_vals(), binary operation)."]
846    RSB_ELOPF_MUL = 1,
847    #[doc = "< Elemental division by a specified scalar (usable with #rsb_mtx_upd_vals(), binary operation)."]
848    RSB_ELOPF_DIV = 2,
849    #[doc = "< Elemental power to a specified scalar (usable with #rsb_mtx_upd_vals(), binary operation)."]
850    RSB_ELOPF_POW = 4,
851    #[doc = "< Elemental negation (usable with #rsb_mtx_upd_vals(), unary operation)."]
852    RSB_ELOPF_NEG = 8,
853    #[doc = "< Row    wise scaling by a specified scaling vector (usable with #rsb_mtx_upd_vals(), binary operation)."]
854    RSB_ELOPF_SCALE_ROWS = 16,
855    #[doc = "< Column wise scaling by a specified scaling vector (usable with #rsb_mtx_upd_vals(), binary operation)."]
856    RSB_ELOPF_SCALE_COLS = 32,
857    #[doc = "< Row    wise scaling by a specified scaling vector. If matrix is of a complex type, the argument is expected to be of the corresponding real type (assumed that that type has been enabled). (usable with #rsb_mtx_upd_vals(), binary operation)."]
858    RSB_ELOPF_SCALE_ROWS_REAL = 64,
859    #[doc = "< Column wise scaling by a specified scaling vector. If matrix is of a complex type, the argument is expected to be of the corresponding real type (assumed that that type has been enabled). (usable with #rsb_mtx_upd_vals(), binary operation)."]
860    RSB_ELOPF_SCALE_COLS_REAL = 128,
861}
862extern "C" {
863    pub fn rsb_mtx_upd_vals(
864        mtxAp: *mut rsb_mtx_t,
865        elop_flags: rsb_elopf_t,
866        omegap: *const ::std::os::raw::c_void,
867    ) -> rsb_err_t;
868}
869pub type rsb_precf_t = rsb_flags_t;
870extern "C" {
871    pub fn rsb_mtx_get_prec(
872        opdp: *mut ::std::os::raw::c_void,
873        mtxAp: *const rsb_mtx_t,
874        prec_flags: rsb_precf_t,
875        ipdp: *const ::std::os::raw::c_void,
876    ) -> rsb_err_t;
877}
878extern "C" {
879    pub fn rsb_mtx_set_vals(
880        mtxAp: *mut rsb_mtx_t,
881        VA: *const ::std::os::raw::c_void,
882        IA: *const rsb_coo_idx_t,
883        JA: *const rsb_coo_idx_t,
884        nnz: rsb_nnz_idx_t,
885        flags: rsb_flags_t,
886    ) -> rsb_err_t;
887}
888extern "C" {
889    pub fn rsb_mtx_get_vals(
890        mtxAp: *const rsb_mtx_t,
891        VA: *mut ::std::os::raw::c_void,
892        IA: *const rsb_coo_idx_t,
893        JA: *const rsb_coo_idx_t,
894        nnz: rsb_nnz_idx_t,
895        flags: rsb_flags_t,
896    ) -> rsb_err_t;
897}
898extern "C" {
899    pub fn rsb_tune_spmm(
900        mtxOpp: *mut *mut rsb_mtx_t,
901        sfp: *mut rsb_real_t,
902        tnp: *mut rsb_int_t,
903        maxr: rsb_int_t,
904        maxt: rsb_time_t,
905        transA: rsb_trans_t,
906        alphap: *const ::std::os::raw::c_void,
907        mtxAp: *const rsb_mtx_t,
908        nrhs: rsb_coo_idx_t,
909        order: rsb_flags_t,
910        Bp: *const ::std::os::raw::c_void,
911        ldB: rsb_nnz_idx_t,
912        betap: *const ::std::os::raw::c_void,
913        Cp: *mut ::std::os::raw::c_void,
914        ldC: rsb_nnz_idx_t,
915    ) -> rsb_err_t;
916}
917extern "C" {
918    pub fn rsb_tune_spsm(
919        mtxOpp: *mut *mut rsb_mtx_t,
920        sfp: *mut rsb_real_t,
921        tnp: *mut rsb_int_t,
922        maxr: rsb_int_t,
923        maxt: rsb_time_t,
924        transA: rsb_trans_t,
925        alphap: *const ::std::os::raw::c_void,
926        mtxAp: *const rsb_mtx_t,
927        nrhs: rsb_coo_idx_t,
928        order: rsb_flags_t,
929        Bp: *const ::std::os::raw::c_void,
930        ldB: rsb_nnz_idx_t,
931        betap: *const ::std::os::raw::c_void,
932        Cp: *mut ::std::os::raw::c_void,
933        ldC: rsb_nnz_idx_t,
934    ) -> rsb_err_t;
935}
936extern "C" {
937    pub fn rsb_psblas_trans_to_rsb_trans(psbtrans: ::std::os::raw::c_char) -> rsb_trans_t;
938}
939extern "C" {
940    pub fn rsb_file_mtx_save(mtxAp: *const rsb_mtx_t, filename: *const rsb_char_t) -> rsb_err_t;
941}
942extern "C" {
943    pub fn rsb_file_mtx_load(
944        filename: *const rsb_char_t,
945        flagsA: rsb_flags_t,
946        typecode: rsb_type_t,
947        errvalp: *mut rsb_err_t,
948    ) -> *mut rsb_mtx_t;
949}
950extern "C" {
951    pub fn rsb_file_vec_load(
952        filename: *const rsb_char_t,
953        typecode: rsb_type_t,
954        Yp: *mut ::std::os::raw::c_void,
955        yvlp: *mut rsb_coo_idx_t,
956    ) -> rsb_err_t;
957}
958extern "C" {
959    pub fn rsb_file_vec_save(
960        filename: *const rsb_char_t,
961        typecode: rsb_type_t,
962        Yp: *const ::std::os::raw::c_void,
963        yvl: rsb_coo_idx_t,
964    ) -> rsb_err_t;
965}
966extern "C" {
967    pub fn rsb_file_mtx_get_dims(
968        filename: *const rsb_char_t,
969        nrp: *mut rsb_coo_idx_t,
970        ncp: *mut rsb_coo_idx_t,
971        nzp: *mut rsb_coo_idx_t,
972        flagsp: *mut rsb_flags_t,
973    ) -> rsb_err_t;
974}
975extern "C" {
976    pub fn rsb_coo_sort(
977        VA: *mut ::std::os::raw::c_void,
978        IA: *mut rsb_coo_idx_t,
979        JA: *mut rsb_coo_idx_t,
980        nnzA: rsb_nnz_idx_t,
981        nrA: rsb_coo_idx_t,
982        ncA: rsb_coo_idx_t,
983        typecode: rsb_type_t,
984        flagsA: rsb_flags_t,
985    ) -> rsb_err_t;
986}
987extern "C" {
988    pub fn rsb_time() -> rsb_time_t;
989}
990#[repr(u32)]
991#[doc = " Used to specify a dense array's elements layout."]
992#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
993pub enum blas_order_type {
994    #[doc = "< Row major."]
995    blas_rowmajor = 101,
996    #[doc = "< Column major."]
997    blas_colmajor = 102,
998}
999#[repr(u32)]
1000#[doc = " Used to specify a transposition operator to a matrix operand."]
1001#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1002pub enum blas_trans_type {
1003    #[doc = "< No transposition."]
1004    blas_no_trans = 111,
1005    #[doc = "< Transposition."]
1006    blas_trans = 112,
1007    #[doc = "< Transposition and conjugation."]
1008    blas_conj_trans = 113,
1009}
1010#[repr(u32)]
1011#[doc = " Specifies (#BLAS_ussp) or inquiries (#BLAS_usgp) upper or lower triangularity of a matrix."]
1012#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1013pub enum blas_uplo_type {
1014    #[doc = "< Upper triangular matrix."]
1015    blas_upper = 121,
1016    #[doc = "< Lower triangular matrix."]
1017    blas_lower = 122,
1018}
1019#[repr(u32)]
1020#[doc = " Specifies (#BLAS_ussp) or inquiries (#BLAS_usgp) whether the diagonal of a matrix is (implicitly) unitary or not."]
1021#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1022pub enum blas_diag_type {
1023    #[doc = "< Unit diagional matrix."]
1024    blas_non_unit_diag = 131,
1025    #[doc = "< Non unit diagional matrix (the default)."]
1026    blas_unit_diag = 132,
1027}
1028#[repr(u32)]
1029#[doc = " Unused/Unsupported."]
1030#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1031pub enum blas_side_type {
1032    #[doc = "< Unsupported."]
1033    blas_left_side = 141,
1034    #[doc = "< Unsupported."]
1035    blas_right_side = 142,
1036}
1037#[repr(u32)]
1038#[doc = " Unused/Unsupported."]
1039#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1040pub enum blas_cmach_type {
1041    #[doc = "< Unsupported."]
1042    blas_base = 151,
1043    #[doc = "< Unsupported."]
1044    blas_t = 152,
1045    #[doc = "< Unsupported."]
1046    blas_rnd = 153,
1047    #[doc = "< Unsupported."]
1048    blas_ieee = 154,
1049    #[doc = "< Unsupported."]
1050    blas_emin = 155,
1051    #[doc = "< Unsupported."]
1052    blas_emax = 156,
1053    #[doc = "< Unsupported."]
1054    blas_eps = 157,
1055    #[doc = "< Unsupported."]
1056    blas_prec = 158,
1057    #[doc = "< Unsupported."]
1058    blas_underflow = 159,
1059    #[doc = "< Unsupported."]
1060    blas_overflow = 160,
1061    #[doc = "< Unsupported."]
1062    blas_sfmin = 161,
1063}
1064#[repr(u32)]
1065#[doc = " Unused/Unsupported."]
1066#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1067pub enum blas_norm_type {
1068    #[doc = "< Unsupported."]
1069    blas_one_norm = 171,
1070    #[doc = "< Unsupported."]
1071    blas_real_one_norm = 172,
1072    #[doc = "< Unsupported."]
1073    blas_two_norm = 173,
1074    #[doc = "< Unsupported."]
1075    blas_frobenius_norm = 174,
1076    #[doc = "< Unsupported."]
1077    blas_inf_norm = 175,
1078    #[doc = "< Unsupported."]
1079    blas_real_inf_norm = 176,
1080    #[doc = "< Unsupported."]
1081    blas_max_norm = 177,
1082    #[doc = "< Unsupported."]
1083    blas_real_max_norm = 178,
1084}
1085#[repr(u32)]
1086#[doc = " Unused/Unsupported."]
1087#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1088pub enum blas_sort_type {
1089    #[doc = "< Unsupported."]
1090    blas_increasing_order = 181,
1091    #[doc = "< Unsupported."]
1092    blas_decreasing_order = 182,
1093}
1094#[repr(u32)]
1095#[doc = " Unused/Unsupported."]
1096#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1097pub enum blas_conj_type {
1098    #[doc = "< Unsupported."]
1099    blas_conj = 191,
1100    #[doc = "< Unsupported."]
1101    blas_no_conj = 192,
1102}
1103#[repr(u32)]
1104#[doc = " Unused/Unsupported."]
1105#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1106pub enum blas_jrot_type {
1107    #[doc = "< Unsupported."]
1108    blas_jrot_inner = 201,
1109    #[doc = "< Unsupported."]
1110    blas_jrot_outer = 202,
1111    #[doc = "< Unsupported."]
1112    blas_jrot_sorted = 203,
1113}
1114#[repr(u32)]
1115#[doc = " Unused/Unsupported."]
1116#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1117pub enum blas_prec_type {
1118    #[doc = "< Unsupported."]
1119    blas_prec_single = 211,
1120    #[doc = "< Unsupported."]
1121    blas_prec_double = 212,
1122    #[doc = "< Unsupported."]
1123    blas_prec_indigenous = 213,
1124    #[doc = "< Unsupported."]
1125    blas_prec_extra = 214,
1126}
1127#[repr(u32)]
1128#[doc = " Index base (valid at matrix build/modify time)."]
1129#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1130pub enum blas_base_type {
1131    #[doc = "< Zero based indices (default when matrix created using the C interface)."]
1132    blas_zero_base = 221,
1133    #[doc = "< Zero based indices (default when matrix created using the Fortran interface)."]
1134    blas_one_base = 222,
1135}
1136#[repr(u32)]
1137#[doc = " Symmetry properties. If not specified otherwise, valid for the both of #BLAS_ussp and #BLAS_usgp."]
1138#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1139pub enum blas_symmetry_type {
1140    #[doc = "< General unsymmetric matrix (default). For #BLAS_usgp only."]
1141    blas_general = 231,
1142    #[doc = "< Symmetric matrix (either #blas_lower_symmetric or #blas_upper_symmetric). For #BLAS_usgp only."]
1143    blas_symmetric = 232,
1144    #[doc = "< Hermitian matrix (either #blas_lower_hermitian or #blas_upper_hermitian). For #BLAS_usgp only."]
1145    blas_hermitian = 233,
1146    #[doc = "< Triangular matrix (either #blas_lower_triangular or #blas_upper_triangular). For #BLAS_usgp only."]
1147    blas_triangular = 234,
1148    #[doc = "< Lower triangular matrix."]
1149    blas_lower_triangular = 235,
1150    #[doc = "< Upper triangular matrix."]
1151    blas_upper_triangular = 236,
1152    #[doc = "< Lower symmetric matrix."]
1153    blas_lower_symmetric = 237,
1154    #[doc = "< Upper symmetric matrix."]
1155    blas_upper_symmetric = 238,
1156    #[doc = "< Lower hermitian matrix."]
1157    blas_lower_hermitian = 239,
1158    #[doc = "< Upper hermitian matrix."]
1159    blas_upper_hermitian = 240,
1160}
1161#[repr(u32)]
1162#[doc = " Numerical field type; can be used with #BLAS_usgp to inquiry about a matrix numerical type (1 will be returned in case of success, 0 in case of failure)."]
1163#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1164pub enum blas_field_type {
1165    #[doc = "< Will succeed if matrix is of 'C' or 'Z' type."]
1166    blas_complex = 241,
1167    #[doc = "< Will succeed if matrix is of 'S' or 'D' type."]
1168    blas_real = 242,
1169    #[doc = "< Will succeed if matrix is of 'D' or 'Z' type."]
1170    blas_double_precision = 243,
1171    #[doc = "< Will succeed if matrix is of 'S' or 'C' type."]
1172    blas_single_precision = 244,
1173}
1174#[repr(u32)]
1175#[doc = " Quantities that can be obtained via #BLAS_usgp."]
1176#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1177pub enum blas_size_type {
1178    #[doc = "< Get the matrix rows count."]
1179    blas_num_rows = 251,
1180    #[doc = "< Get the matrix columns count."]
1181    blas_num_cols = 252,
1182    #[doc = "< Get the matrix nonzeros count."]
1183    blas_num_nonzeros = 253,
1184}
1185impl blas_handle_type {
1186    #[doc = "< Used to check whether the handle is invalid."]
1187    pub const blas_invalid_handle: blas_handle_type = blas_handle_type(261);
1188}
1189impl blas_handle_type {
1190    #[doc = "< Will give 1 if the handle is new."]
1191    pub const blas_new_handle: blas_handle_type = blas_handle_type(262);
1192}
1193impl blas_handle_type {
1194    #[doc = "< will give 1 if the handle is open."]
1195    pub const blas_open_handle: blas_handle_type = blas_handle_type(263);
1196}
1197impl blas_handle_type {
1198    #[doc = "< Will give 1 if the handle is valid (that is, after #BLAS_duscr_end/#BLAS_zuscr_end/#BLAS_cuscr_end/#BLAS_zuscr_end)."]
1199    pub const blas_valid_handle: blas_handle_type = blas_handle_type(264);
1200}
1201#[repr(transparent)]
1202#[doc = " The following are not fully implemented. Usable with #BLAS_usgp."]
1203#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1204pub struct blas_handle_type(pub ::std::os::raw::c_uint);
1205#[repr(u32)]
1206#[doc = " The following are usable with #BLAS_usgp only."]
1207#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1208pub enum blas_sparsity_optimization_type {
1209    #[doc = "< Will give 0."]
1210    blas_regular = 271,
1211    #[doc = "< Will give 1."]
1212    blas_irregular = 272,
1213    #[doc = "< Will give 0."]
1214    blas_block = 273,
1215    #[doc = "< Complementary to #blas_valid_handle."]
1216    blas_unassembled = 274,
1217}
1218#[repr(u32)]
1219#[doc = " Properties suitable to be used with #BLAS_ussp/#BLAS_usgp. All of these are not in the Sparse BLAS standard."]
1220#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1221pub enum blas_rsb_ext_type {
1222    #[doc = "< Turn on executing threads autotuning for #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. As an extension to the standard, the autotuning properties can be turned on/off at any time; if the autotuning feature has not been enabled at build time, using these properties will make the call fail. For more information, see #rsb_tune_spmm. (EXPERIMENTAL)"]
1223    blas_rsb_spmv_autotuning_on = 6660,
1224    #[doc = "< Turn off executing threads autotuning for #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1225    blas_rsb_spmv_autotuning_off = 6661,
1226    #[doc = "< Turn on executing threads autotuning for untransposed #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1227    blas_rsb_spmv_n_autotuning_on = 6662,
1228    #[doc = "< Turn on executing threads autotuning for untransposed #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1229    blas_rsb_spmv_n_autotuning_off = 6663,
1230    #[doc = "< Turn on executing threads autotuning for transposed #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1231    blas_rsb_spmv_t_autotuning_on = 6664,
1232    #[doc = "< Turn on executing threads autotuning for transposed #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv. See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1233    blas_rsb_spmv_t_autotuning_off = 6665,
1234    #[doc = "< Turn on executing threads autotuning for the next operation among #BLAS_dusmv, #BLAS_zusmv, #BLAS_susmv, #BLAS_cusmv). See #blas_rsb_spmv_autotuning_on. (EXPERIMENTAL)"]
1235    blas_rsb_autotune_next_operation = 6666,
1236    #[doc = "< Request/check for RSB representation."]
1237    blas_rsb_rep_rsb = 9995,
1238    #[doc = "< Request/check for CSR representation."]
1239    blas_rsb_rep_csr = 9996,
1240    #[doc = "< Request/check for COO representation."]
1241    blas_rsb_rep_coo = 9997,
1242    #[doc = "< Request/check for duplicate nonzeroes overwriting policy."]
1243    blas_rsb_duplicates_ovw = 9998,
1244    #[doc = "< Request/check for duplicate nonzeroes summation policy."]
1245    blas_rsb_duplicates_sum = 9999,
1246}
1247#[doc = " the sparse matrix descriptor type"]
1248#[repr(transparent)]
1249#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1250pub struct blas_sparse_matrix(pub ::std::os::raw::c_int);
1251extern "C" {
1252    pub fn BLAS_susdot(
1253        conj: blas_conj_type,
1254        nnz: ::std::os::raw::c_int,
1255        x: *const f32,
1256        indx: *const ::std::os::raw::c_int,
1257        y: *const f32,
1258        incy: ::std::os::raw::c_int,
1259        r: *mut f32,
1260        index_base: blas_base_type,
1261    ) -> ::std::os::raw::c_int;
1262}
1263extern "C" {
1264    pub fn blas_susdot_(
1265        conj: *mut blas_conj_type,
1266        nnz: *mut ::std::os::raw::c_int,
1267        x: *const f32,
1268        indx: *const ::std::os::raw::c_int,
1269        y: *const f32,
1270        incy: *mut ::std::os::raw::c_int,
1271        r: *mut f32,
1272        index_base: *mut blas_base_type,
1273        istat: *mut ::std::os::raw::c_int,
1274    );
1275}
1276extern "C" {
1277    pub fn BLAS_dusdot(
1278        conj: blas_conj_type,
1279        nnz: ::std::os::raw::c_int,
1280        x: *const f64,
1281        indx: *const ::std::os::raw::c_int,
1282        y: *const f64,
1283        incy: ::std::os::raw::c_int,
1284        r: *mut f64,
1285        index_base: blas_base_type,
1286    ) -> ::std::os::raw::c_int;
1287}
1288extern "C" {
1289    pub fn blas_dusdot_(
1290        conj: *mut blas_conj_type,
1291        nnz: *mut ::std::os::raw::c_int,
1292        x: *const f64,
1293        indx: *const ::std::os::raw::c_int,
1294        y: *const f64,
1295        incy: *mut ::std::os::raw::c_int,
1296        r: *mut f64,
1297        index_base: *mut blas_base_type,
1298        istat: *mut ::std::os::raw::c_int,
1299    );
1300}
1301extern "C" {
1302    pub fn BLAS_cusdot(
1303        conj: blas_conj_type,
1304        nnz: ::std::os::raw::c_int,
1305        x: *const ::std::os::raw::c_void,
1306        indx: *const ::std::os::raw::c_int,
1307        y: *const ::std::os::raw::c_void,
1308        incy: ::std::os::raw::c_int,
1309        r: *mut ::std::os::raw::c_void,
1310        index_base: blas_base_type,
1311    ) -> ::std::os::raw::c_int;
1312}
1313extern "C" {
1314    pub fn blas_cusdot_(
1315        conj: *mut blas_conj_type,
1316        nnz: *mut ::std::os::raw::c_int,
1317        x: *const ::std::os::raw::c_void,
1318        indx: *const ::std::os::raw::c_int,
1319        y: *const ::std::os::raw::c_void,
1320        incy: *mut ::std::os::raw::c_int,
1321        r: *mut ::std::os::raw::c_void,
1322        index_base: *mut blas_base_type,
1323        istat: *mut ::std::os::raw::c_int,
1324    );
1325}
1326extern "C" {
1327    pub fn BLAS_zusdot(
1328        conj: blas_conj_type,
1329        nnz: ::std::os::raw::c_int,
1330        x: *const ::std::os::raw::c_void,
1331        indx: *const ::std::os::raw::c_int,
1332        y: *const ::std::os::raw::c_void,
1333        incy: ::std::os::raw::c_int,
1334        r: *mut ::std::os::raw::c_void,
1335        index_base: blas_base_type,
1336    ) -> ::std::os::raw::c_int;
1337}
1338extern "C" {
1339    pub fn blas_zusdot_(
1340        conj: *mut blas_conj_type,
1341        nnz: *mut ::std::os::raw::c_int,
1342        x: *const ::std::os::raw::c_void,
1343        indx: *const ::std::os::raw::c_int,
1344        y: *const ::std::os::raw::c_void,
1345        incy: *mut ::std::os::raw::c_int,
1346        r: *mut ::std::os::raw::c_void,
1347        index_base: *mut blas_base_type,
1348        istat: *mut ::std::os::raw::c_int,
1349    );
1350}
1351extern "C" {
1352    pub fn BLAS_susaxpy(
1353        nnz: ::std::os::raw::c_int,
1354        alpha: f32,
1355        x: *const f32,
1356        indx: *const ::std::os::raw::c_int,
1357        y: *mut f32,
1358        incy: ::std::os::raw::c_int,
1359        index_base: blas_base_type,
1360    ) -> ::std::os::raw::c_int;
1361}
1362extern "C" {
1363    pub fn blas_susaxpy_(
1364        nnz: *mut ::std::os::raw::c_int,
1365        alpha: *mut f32,
1366        x: *const f32,
1367        indx: *const ::std::os::raw::c_int,
1368        y: *mut f32,
1369        incy: *mut ::std::os::raw::c_int,
1370        index_base: *mut blas_base_type,
1371        istat: *mut ::std::os::raw::c_int,
1372    );
1373}
1374extern "C" {
1375    pub fn BLAS_dusaxpy(
1376        nnz: ::std::os::raw::c_int,
1377        alpha: f64,
1378        x: *const f64,
1379        indx: *const ::std::os::raw::c_int,
1380        y: *mut f64,
1381        incy: ::std::os::raw::c_int,
1382        index_base: blas_base_type,
1383    ) -> ::std::os::raw::c_int;
1384}
1385extern "C" {
1386    pub fn blas_dusaxpy_(
1387        nnz: *mut ::std::os::raw::c_int,
1388        alpha: *mut f64,
1389        x: *const f64,
1390        indx: *const ::std::os::raw::c_int,
1391        y: *mut f64,
1392        incy: *mut ::std::os::raw::c_int,
1393        index_base: *mut blas_base_type,
1394        istat: *mut ::std::os::raw::c_int,
1395    );
1396}
1397extern "C" {
1398    pub fn BLAS_cusaxpy(
1399        nnz: ::std::os::raw::c_int,
1400        alpha: *const ::std::os::raw::c_void,
1401        x: *const ::std::os::raw::c_void,
1402        indx: *const ::std::os::raw::c_int,
1403        y: *mut ::std::os::raw::c_void,
1404        incy: ::std::os::raw::c_int,
1405        index_base: blas_base_type,
1406    ) -> ::std::os::raw::c_int;
1407}
1408extern "C" {
1409    pub fn blas_cusaxpy_(
1410        nnz: *mut ::std::os::raw::c_int,
1411        alpha: *const ::std::os::raw::c_void,
1412        x: *const ::std::os::raw::c_void,
1413        indx: *const ::std::os::raw::c_int,
1414        y: *mut ::std::os::raw::c_void,
1415        incy: *mut ::std::os::raw::c_int,
1416        index_base: *mut blas_base_type,
1417        istat: *mut ::std::os::raw::c_int,
1418    );
1419}
1420extern "C" {
1421    pub fn BLAS_zusaxpy(
1422        nnz: ::std::os::raw::c_int,
1423        alpha: *const ::std::os::raw::c_void,
1424        x: *const ::std::os::raw::c_void,
1425        indx: *const ::std::os::raw::c_int,
1426        y: *mut ::std::os::raw::c_void,
1427        incy: ::std::os::raw::c_int,
1428        index_base: blas_base_type,
1429    ) -> ::std::os::raw::c_int;
1430}
1431extern "C" {
1432    pub fn blas_zusaxpy_(
1433        nnz: *mut ::std::os::raw::c_int,
1434        alpha: *const ::std::os::raw::c_void,
1435        x: *const ::std::os::raw::c_void,
1436        indx: *const ::std::os::raw::c_int,
1437        y: *mut ::std::os::raw::c_void,
1438        incy: *mut ::std::os::raw::c_int,
1439        index_base: *mut blas_base_type,
1440        istat: *mut ::std::os::raw::c_int,
1441    );
1442}
1443extern "C" {
1444    pub fn BLAS_susga(
1445        nnz: ::std::os::raw::c_int,
1446        y: *const f32,
1447        incy: ::std::os::raw::c_int,
1448        x: *mut f32,
1449        indx: *const ::std::os::raw::c_int,
1450        index_base: blas_base_type,
1451    ) -> ::std::os::raw::c_int;
1452}
1453extern "C" {
1454    pub fn blas_susga_(
1455        nnz: *mut ::std::os::raw::c_int,
1456        y: *const f32,
1457        incy: *mut ::std::os::raw::c_int,
1458        x: *mut f32,
1459        indx: *const ::std::os::raw::c_int,
1460        index_base: *mut blas_base_type,
1461        istat: *mut ::std::os::raw::c_int,
1462    );
1463}
1464extern "C" {
1465    pub fn BLAS_dusga(
1466        nnz: ::std::os::raw::c_int,
1467        y: *const f64,
1468        incy: ::std::os::raw::c_int,
1469        x: *mut f64,
1470        indx: *const ::std::os::raw::c_int,
1471        index_base: blas_base_type,
1472    ) -> ::std::os::raw::c_int;
1473}
1474extern "C" {
1475    pub fn blas_dusga_(
1476        nnz: *mut ::std::os::raw::c_int,
1477        y: *const f64,
1478        incy: *mut ::std::os::raw::c_int,
1479        x: *mut f64,
1480        indx: *const ::std::os::raw::c_int,
1481        index_base: *mut blas_base_type,
1482        istat: *mut ::std::os::raw::c_int,
1483    );
1484}
1485extern "C" {
1486    pub fn BLAS_cusga(
1487        nnz: ::std::os::raw::c_int,
1488        y: *const ::std::os::raw::c_void,
1489        incy: ::std::os::raw::c_int,
1490        x: *mut ::std::os::raw::c_void,
1491        indx: *const ::std::os::raw::c_int,
1492        index_base: blas_base_type,
1493    ) -> ::std::os::raw::c_int;
1494}
1495extern "C" {
1496    pub fn blas_cusga_(
1497        nnz: *mut ::std::os::raw::c_int,
1498        y: *const ::std::os::raw::c_void,
1499        incy: *mut ::std::os::raw::c_int,
1500        x: *mut ::std::os::raw::c_void,
1501        indx: *const ::std::os::raw::c_int,
1502        index_base: *mut blas_base_type,
1503        istat: *mut ::std::os::raw::c_int,
1504    );
1505}
1506extern "C" {
1507    pub fn BLAS_zusga(
1508        nnz: ::std::os::raw::c_int,
1509        y: *const ::std::os::raw::c_void,
1510        incy: ::std::os::raw::c_int,
1511        x: *mut ::std::os::raw::c_void,
1512        indx: *const ::std::os::raw::c_int,
1513        index_base: blas_base_type,
1514    ) -> ::std::os::raw::c_int;
1515}
1516extern "C" {
1517    pub fn blas_zusga_(
1518        nnz: *mut ::std::os::raw::c_int,
1519        y: *const ::std::os::raw::c_void,
1520        incy: *mut ::std::os::raw::c_int,
1521        x: *mut ::std::os::raw::c_void,
1522        indx: *const ::std::os::raw::c_int,
1523        index_base: *mut blas_base_type,
1524        istat: *mut ::std::os::raw::c_int,
1525    );
1526}
1527extern "C" {
1528    pub fn BLAS_susgz(
1529        nnz: ::std::os::raw::c_int,
1530        y: *mut f32,
1531        incy: ::std::os::raw::c_int,
1532        x: *mut f32,
1533        indx: *const ::std::os::raw::c_int,
1534        index_base: blas_base_type,
1535    ) -> ::std::os::raw::c_int;
1536}
1537extern "C" {
1538    pub fn blas_susgz_(
1539        nnz: *mut ::std::os::raw::c_int,
1540        y: *mut f32,
1541        incy: *mut ::std::os::raw::c_int,
1542        x: *mut f32,
1543        indx: *const ::std::os::raw::c_int,
1544        index_base: *mut blas_base_type,
1545        istat: *mut ::std::os::raw::c_int,
1546    );
1547}
1548extern "C" {
1549    pub fn BLAS_dusgz(
1550        nnz: ::std::os::raw::c_int,
1551        y: *mut f64,
1552        incy: ::std::os::raw::c_int,
1553        x: *mut f64,
1554        indx: *const ::std::os::raw::c_int,
1555        index_base: blas_base_type,
1556    ) -> ::std::os::raw::c_int;
1557}
1558extern "C" {
1559    pub fn blas_dusgz_(
1560        nnz: *mut ::std::os::raw::c_int,
1561        y: *mut f64,
1562        incy: *mut ::std::os::raw::c_int,
1563        x: *mut f64,
1564        indx: *const ::std::os::raw::c_int,
1565        index_base: *mut blas_base_type,
1566        istat: *mut ::std::os::raw::c_int,
1567    );
1568}
1569extern "C" {
1570    pub fn BLAS_cusgz(
1571        nnz: ::std::os::raw::c_int,
1572        y: *mut ::std::os::raw::c_void,
1573        incy: ::std::os::raw::c_int,
1574        x: *mut ::std::os::raw::c_void,
1575        indx: *const ::std::os::raw::c_int,
1576        index_base: blas_base_type,
1577    ) -> ::std::os::raw::c_int;
1578}
1579extern "C" {
1580    pub fn blas_cusgz_(
1581        nnz: *mut ::std::os::raw::c_int,
1582        y: *mut ::std::os::raw::c_void,
1583        incy: *mut ::std::os::raw::c_int,
1584        x: *mut ::std::os::raw::c_void,
1585        indx: *const ::std::os::raw::c_int,
1586        index_base: *mut blas_base_type,
1587        istat: *mut ::std::os::raw::c_int,
1588    );
1589}
1590extern "C" {
1591    pub fn BLAS_zusgz(
1592        nnz: ::std::os::raw::c_int,
1593        y: *mut ::std::os::raw::c_void,
1594        incy: ::std::os::raw::c_int,
1595        x: *mut ::std::os::raw::c_void,
1596        indx: *const ::std::os::raw::c_int,
1597        index_base: blas_base_type,
1598    ) -> ::std::os::raw::c_int;
1599}
1600extern "C" {
1601    pub fn blas_zusgz_(
1602        nnz: *mut ::std::os::raw::c_int,
1603        y: *mut ::std::os::raw::c_void,
1604        incy: *mut ::std::os::raw::c_int,
1605        x: *mut ::std::os::raw::c_void,
1606        indx: *const ::std::os::raw::c_int,
1607        index_base: *mut blas_base_type,
1608        istat: *mut ::std::os::raw::c_int,
1609    );
1610}
1611extern "C" {
1612    pub fn BLAS_sussc(
1613        nnz: ::std::os::raw::c_int,
1614        x: *const f32,
1615        y: *mut f32,
1616        incy: ::std::os::raw::c_int,
1617        indx: *const ::std::os::raw::c_int,
1618        index_base: blas_base_type,
1619    ) -> ::std::os::raw::c_int;
1620}
1621extern "C" {
1622    pub fn blas_sussc_(
1623        nnz: *mut ::std::os::raw::c_int,
1624        x: *const f32,
1625        y: *mut f32,
1626        incy: *mut ::std::os::raw::c_int,
1627        indx: *const ::std::os::raw::c_int,
1628        index_base: *mut blas_base_type,
1629        istat: *mut ::std::os::raw::c_int,
1630    );
1631}
1632extern "C" {
1633    pub fn BLAS_dussc(
1634        nnz: ::std::os::raw::c_int,
1635        x: *const f64,
1636        y: *mut f64,
1637        incy: ::std::os::raw::c_int,
1638        indx: *const ::std::os::raw::c_int,
1639        index_base: blas_base_type,
1640    ) -> ::std::os::raw::c_int;
1641}
1642extern "C" {
1643    pub fn blas_dussc_(
1644        nnz: *mut ::std::os::raw::c_int,
1645        x: *const f64,
1646        y: *mut f64,
1647        incy: *mut ::std::os::raw::c_int,
1648        indx: *const ::std::os::raw::c_int,
1649        index_base: *mut blas_base_type,
1650        istat: *mut ::std::os::raw::c_int,
1651    );
1652}
1653extern "C" {
1654    pub fn BLAS_cussc(
1655        nnz: ::std::os::raw::c_int,
1656        x: *const ::std::os::raw::c_void,
1657        y: *mut ::std::os::raw::c_void,
1658        incy: ::std::os::raw::c_int,
1659        indx: *const ::std::os::raw::c_int,
1660        index_base: blas_base_type,
1661    ) -> ::std::os::raw::c_int;
1662}
1663extern "C" {
1664    pub fn blas_cussc_(
1665        nnz: *mut ::std::os::raw::c_int,
1666        x: *const ::std::os::raw::c_void,
1667        y: *mut ::std::os::raw::c_void,
1668        incy: *mut ::std::os::raw::c_int,
1669        indx: *const ::std::os::raw::c_int,
1670        index_base: *mut blas_base_type,
1671        istat: *mut ::std::os::raw::c_int,
1672    );
1673}
1674extern "C" {
1675    pub fn BLAS_zussc(
1676        nnz: ::std::os::raw::c_int,
1677        x: *const ::std::os::raw::c_void,
1678        y: *mut ::std::os::raw::c_void,
1679        incy: ::std::os::raw::c_int,
1680        indx: *const ::std::os::raw::c_int,
1681        index_base: blas_base_type,
1682    ) -> ::std::os::raw::c_int;
1683}
1684extern "C" {
1685    pub fn blas_zussc_(
1686        nnz: *mut ::std::os::raw::c_int,
1687        x: *const ::std::os::raw::c_void,
1688        y: *mut ::std::os::raw::c_void,
1689        incy: *mut ::std::os::raw::c_int,
1690        indx: *const ::std::os::raw::c_int,
1691        index_base: *mut blas_base_type,
1692        istat: *mut ::std::os::raw::c_int,
1693    );
1694}
1695extern "C" {
1696    pub fn BLAS_susmv(
1697        transA: blas_trans_type,
1698        alpha: f32,
1699        A: blas_sparse_matrix,
1700        x: *const f32,
1701        incx: ::std::os::raw::c_int,
1702        y: *mut f32,
1703        incy: ::std::os::raw::c_int,
1704    ) -> ::std::os::raw::c_int;
1705}
1706extern "C" {
1707    pub fn blas_susmv_(
1708        transA: *mut blas_trans_type,
1709        alpha: *mut f32,
1710        A: *mut blas_sparse_matrix,
1711        x: *const f32,
1712        incx: *mut ::std::os::raw::c_int,
1713        y: *mut f32,
1714        incy: *mut ::std::os::raw::c_int,
1715        istat: *mut ::std::os::raw::c_int,
1716    );
1717}
1718extern "C" {
1719    pub fn BLAS_dusmv(
1720        transA: blas_trans_type,
1721        alpha: f64,
1722        A: blas_sparse_matrix,
1723        x: *const f64,
1724        incx: ::std::os::raw::c_int,
1725        y: *mut f64,
1726        incy: ::std::os::raw::c_int,
1727    ) -> ::std::os::raw::c_int;
1728}
1729extern "C" {
1730    pub fn blas_dusmv_(
1731        transA: *mut blas_trans_type,
1732        alpha: *mut f64,
1733        A: *mut blas_sparse_matrix,
1734        x: *const f64,
1735        incx: *mut ::std::os::raw::c_int,
1736        y: *mut f64,
1737        incy: *mut ::std::os::raw::c_int,
1738        istat: *mut ::std::os::raw::c_int,
1739    );
1740}
1741extern "C" {
1742    pub fn BLAS_cusmv(
1743        transA: blas_trans_type,
1744        alpha: *const ::std::os::raw::c_void,
1745        A: blas_sparse_matrix,
1746        x: *const ::std::os::raw::c_void,
1747        incx: ::std::os::raw::c_int,
1748        y: *mut ::std::os::raw::c_void,
1749        incy: ::std::os::raw::c_int,
1750    ) -> ::std::os::raw::c_int;
1751}
1752extern "C" {
1753    pub fn blas_cusmv_(
1754        transA: *mut blas_trans_type,
1755        alpha: *const ::std::os::raw::c_void,
1756        A: *mut blas_sparse_matrix,
1757        x: *const ::std::os::raw::c_void,
1758        incx: *mut ::std::os::raw::c_int,
1759        y: *mut ::std::os::raw::c_void,
1760        incy: *mut ::std::os::raw::c_int,
1761        istat: *mut ::std::os::raw::c_int,
1762    );
1763}
1764extern "C" {
1765    pub fn BLAS_zusmv(
1766        transA: blas_trans_type,
1767        alpha: *const ::std::os::raw::c_void,
1768        A: blas_sparse_matrix,
1769        x: *const ::std::os::raw::c_void,
1770        incx: ::std::os::raw::c_int,
1771        y: *mut ::std::os::raw::c_void,
1772        incy: ::std::os::raw::c_int,
1773    ) -> ::std::os::raw::c_int;
1774}
1775extern "C" {
1776    pub fn blas_zusmv_(
1777        transA: *mut blas_trans_type,
1778        alpha: *const ::std::os::raw::c_void,
1779        A: *mut blas_sparse_matrix,
1780        x: *const ::std::os::raw::c_void,
1781        incx: *mut ::std::os::raw::c_int,
1782        y: *mut ::std::os::raw::c_void,
1783        incy: *mut ::std::os::raw::c_int,
1784        istat: *mut ::std::os::raw::c_int,
1785    );
1786}
1787extern "C" {
1788    pub fn BLAS_sussv(
1789        transT: blas_trans_type,
1790        alpha: f32,
1791        T: blas_sparse_matrix,
1792        x: *mut f32,
1793        incx: ::std::os::raw::c_int,
1794    ) -> ::std::os::raw::c_int;
1795}
1796extern "C" {
1797    pub fn blas_sussv_(
1798        transT: *mut blas_trans_type,
1799        alpha: *mut f32,
1800        T: *mut blas_sparse_matrix,
1801        x: *mut f32,
1802        incx: *mut ::std::os::raw::c_int,
1803        istat: *mut ::std::os::raw::c_int,
1804    );
1805}
1806extern "C" {
1807    pub fn BLAS_dussv(
1808        transT: blas_trans_type,
1809        alpha: f64,
1810        T: blas_sparse_matrix,
1811        x: *mut f64,
1812        incx: ::std::os::raw::c_int,
1813    ) -> ::std::os::raw::c_int;
1814}
1815extern "C" {
1816    pub fn blas_dussv_(
1817        transT: *mut blas_trans_type,
1818        alpha: *mut f64,
1819        T: *mut blas_sparse_matrix,
1820        x: *mut f64,
1821        incx: *mut ::std::os::raw::c_int,
1822        istat: *mut ::std::os::raw::c_int,
1823    );
1824}
1825extern "C" {
1826    pub fn BLAS_cussv(
1827        transT: blas_trans_type,
1828        alpha: *const ::std::os::raw::c_void,
1829        T: blas_sparse_matrix,
1830        x: *mut ::std::os::raw::c_void,
1831        incx: ::std::os::raw::c_int,
1832    ) -> ::std::os::raw::c_int;
1833}
1834extern "C" {
1835    pub fn blas_cussv_(
1836        transT: *mut blas_trans_type,
1837        alpha: *const ::std::os::raw::c_void,
1838        T: *mut blas_sparse_matrix,
1839        x: *mut ::std::os::raw::c_void,
1840        incx: *mut ::std::os::raw::c_int,
1841        istat: *mut ::std::os::raw::c_int,
1842    );
1843}
1844extern "C" {
1845    pub fn BLAS_zussv(
1846        transT: blas_trans_type,
1847        alpha: *const ::std::os::raw::c_void,
1848        T: blas_sparse_matrix,
1849        x: *mut ::std::os::raw::c_void,
1850        incx: ::std::os::raw::c_int,
1851    ) -> ::std::os::raw::c_int;
1852}
1853extern "C" {
1854    pub fn blas_zussv_(
1855        transT: *mut blas_trans_type,
1856        alpha: *const ::std::os::raw::c_void,
1857        T: *mut blas_sparse_matrix,
1858        x: *mut ::std::os::raw::c_void,
1859        incx: *mut ::std::os::raw::c_int,
1860        istat: *mut ::std::os::raw::c_int,
1861    );
1862}
1863extern "C" {
1864    pub fn BLAS_susmm(
1865        order: blas_order_type,
1866        transA: blas_trans_type,
1867        nrhs: ::std::os::raw::c_int,
1868        alpha: f32,
1869        A: blas_sparse_matrix,
1870        b: *const f32,
1871        ldb: ::std::os::raw::c_int,
1872        c: *mut f32,
1873        ldc: ::std::os::raw::c_int,
1874    ) -> ::std::os::raw::c_int;
1875}
1876extern "C" {
1877    pub fn blas_susmm_(
1878        order: *mut blas_order_type,
1879        transA: *mut blas_trans_type,
1880        nrhs: *mut ::std::os::raw::c_int,
1881        alpha: *mut f32,
1882        A: *mut blas_sparse_matrix,
1883        b: *const f32,
1884        ldb: *mut ::std::os::raw::c_int,
1885        c: *mut f32,
1886        ldc: *mut ::std::os::raw::c_int,
1887        istat: *mut ::std::os::raw::c_int,
1888    );
1889}
1890extern "C" {
1891    pub fn BLAS_dusmm(
1892        order: blas_order_type,
1893        transA: blas_trans_type,
1894        nrhs: ::std::os::raw::c_int,
1895        alpha: f64,
1896        A: blas_sparse_matrix,
1897        b: *const f64,
1898        ldb: ::std::os::raw::c_int,
1899        c: *mut f64,
1900        ldc: ::std::os::raw::c_int,
1901    ) -> ::std::os::raw::c_int;
1902}
1903extern "C" {
1904    pub fn blas_dusmm_(
1905        order: *mut blas_order_type,
1906        transA: *mut blas_trans_type,
1907        nrhs: *mut ::std::os::raw::c_int,
1908        alpha: *mut f64,
1909        A: *mut blas_sparse_matrix,
1910        b: *const f64,
1911        ldb: *mut ::std::os::raw::c_int,
1912        c: *mut f64,
1913        ldc: *mut ::std::os::raw::c_int,
1914        istat: *mut ::std::os::raw::c_int,
1915    );
1916}
1917extern "C" {
1918    pub fn BLAS_cusmm(
1919        order: blas_order_type,
1920        transA: blas_trans_type,
1921        nrhs: ::std::os::raw::c_int,
1922        alpha: *const ::std::os::raw::c_void,
1923        A: blas_sparse_matrix,
1924        b: *const ::std::os::raw::c_void,
1925        ldb: ::std::os::raw::c_int,
1926        c: *mut ::std::os::raw::c_void,
1927        ldc: ::std::os::raw::c_int,
1928    ) -> ::std::os::raw::c_int;
1929}
1930extern "C" {
1931    pub fn blas_cusmm_(
1932        order: *mut blas_order_type,
1933        transA: *mut blas_trans_type,
1934        nrhs: *mut ::std::os::raw::c_int,
1935        alpha: *const ::std::os::raw::c_void,
1936        A: *mut blas_sparse_matrix,
1937        b: *const ::std::os::raw::c_void,
1938        ldb: *mut ::std::os::raw::c_int,
1939        c: *mut ::std::os::raw::c_void,
1940        ldc: *mut ::std::os::raw::c_int,
1941        istat: *mut ::std::os::raw::c_int,
1942    );
1943}
1944extern "C" {
1945    pub fn BLAS_zusmm(
1946        order: blas_order_type,
1947        transA: blas_trans_type,
1948        nrhs: ::std::os::raw::c_int,
1949        alpha: *const ::std::os::raw::c_void,
1950        A: blas_sparse_matrix,
1951        b: *const ::std::os::raw::c_void,
1952        ldb: ::std::os::raw::c_int,
1953        c: *mut ::std::os::raw::c_void,
1954        ldc: ::std::os::raw::c_int,
1955    ) -> ::std::os::raw::c_int;
1956}
1957extern "C" {
1958    pub fn blas_zusmm_(
1959        order: *mut blas_order_type,
1960        transA: *mut blas_trans_type,
1961        nrhs: *mut ::std::os::raw::c_int,
1962        alpha: *const ::std::os::raw::c_void,
1963        A: *mut blas_sparse_matrix,
1964        b: *const ::std::os::raw::c_void,
1965        ldb: *mut ::std::os::raw::c_int,
1966        c: *mut ::std::os::raw::c_void,
1967        ldc: *mut ::std::os::raw::c_int,
1968        istat: *mut ::std::os::raw::c_int,
1969    );
1970}
1971extern "C" {
1972    pub fn BLAS_sussm(
1973        order: blas_order_type,
1974        transT: blas_trans_type,
1975        nrhs: ::std::os::raw::c_int,
1976        alpha: f32,
1977        T: blas_sparse_matrix,
1978        b: *mut f32,
1979        ldb: ::std::os::raw::c_int,
1980    ) -> ::std::os::raw::c_int;
1981}
1982extern "C" {
1983    pub fn blas_sussm_(
1984        order: *mut blas_order_type,
1985        transT: *mut blas_trans_type,
1986        nrhs: *mut ::std::os::raw::c_int,
1987        alpha: *mut f32,
1988        T: *mut blas_sparse_matrix,
1989        b: *mut f32,
1990        ldb: *mut ::std::os::raw::c_int,
1991        istat: *mut ::std::os::raw::c_int,
1992    );
1993}
1994extern "C" {
1995    pub fn BLAS_dussm(
1996        order: blas_order_type,
1997        transT: blas_trans_type,
1998        nrhs: ::std::os::raw::c_int,
1999        alpha: f64,
2000        T: blas_sparse_matrix,
2001        b: *mut f64,
2002        ldb: ::std::os::raw::c_int,
2003    ) -> ::std::os::raw::c_int;
2004}
2005extern "C" {
2006    pub fn blas_dussm_(
2007        order: *mut blas_order_type,
2008        transT: *mut blas_trans_type,
2009        nrhs: *mut ::std::os::raw::c_int,
2010        alpha: *mut f64,
2011        T: *mut blas_sparse_matrix,
2012        b: *mut f64,
2013        ldb: *mut ::std::os::raw::c_int,
2014        istat: *mut ::std::os::raw::c_int,
2015    );
2016}
2017extern "C" {
2018    pub fn BLAS_cussm(
2019        order: blas_order_type,
2020        transT: blas_trans_type,
2021        nrhs: ::std::os::raw::c_int,
2022        alpha: *const ::std::os::raw::c_void,
2023        T: blas_sparse_matrix,
2024        b: *mut ::std::os::raw::c_void,
2025        ldb: ::std::os::raw::c_int,
2026    ) -> ::std::os::raw::c_int;
2027}
2028extern "C" {
2029    pub fn blas_cussm_(
2030        order: *mut blas_order_type,
2031        transT: *mut blas_trans_type,
2032        nrhs: *mut ::std::os::raw::c_int,
2033        alpha: *const ::std::os::raw::c_void,
2034        T: *mut blas_sparse_matrix,
2035        b: *mut ::std::os::raw::c_void,
2036        ldb: *mut ::std::os::raw::c_int,
2037        istat: *mut ::std::os::raw::c_int,
2038    );
2039}
2040extern "C" {
2041    pub fn BLAS_zussm(
2042        order: blas_order_type,
2043        transT: blas_trans_type,
2044        nrhs: ::std::os::raw::c_int,
2045        alpha: *const ::std::os::raw::c_void,
2046        T: blas_sparse_matrix,
2047        b: *mut ::std::os::raw::c_void,
2048        ldb: ::std::os::raw::c_int,
2049    ) -> ::std::os::raw::c_int;
2050}
2051extern "C" {
2052    pub fn blas_zussm_(
2053        order: *mut blas_order_type,
2054        transT: *mut blas_trans_type,
2055        nrhs: *mut ::std::os::raw::c_int,
2056        alpha: *const ::std::os::raw::c_void,
2057        T: *mut blas_sparse_matrix,
2058        b: *mut ::std::os::raw::c_void,
2059        ldb: *mut ::std::os::raw::c_int,
2060        istat: *mut ::std::os::raw::c_int,
2061    );
2062}
2063extern "C" {
2064    pub fn BLAS_suscr_begin(
2065        m: ::std::os::raw::c_int,
2066        n: ::std::os::raw::c_int,
2067    ) -> blas_sparse_matrix;
2068}
2069extern "C" {
2070    pub fn blas_suscr_begin_(
2071        m: *mut ::std::os::raw::c_int,
2072        n: *mut ::std::os::raw::c_int,
2073        A: *mut blas_sparse_matrix,
2074        istat: *mut ::std::os::raw::c_int,
2075    );
2076}
2077extern "C" {
2078    pub fn BLAS_duscr_begin(
2079        m: ::std::os::raw::c_int,
2080        n: ::std::os::raw::c_int,
2081    ) -> blas_sparse_matrix;
2082}
2083extern "C" {
2084    pub fn blas_duscr_begin_(
2085        m: *mut ::std::os::raw::c_int,
2086        n: *mut ::std::os::raw::c_int,
2087        A: *mut blas_sparse_matrix,
2088        istat: *mut ::std::os::raw::c_int,
2089    );
2090}
2091extern "C" {
2092    pub fn BLAS_cuscr_begin(
2093        m: ::std::os::raw::c_int,
2094        n: ::std::os::raw::c_int,
2095    ) -> blas_sparse_matrix;
2096}
2097extern "C" {
2098    pub fn blas_cuscr_begin_(
2099        m: *mut ::std::os::raw::c_int,
2100        n: *mut ::std::os::raw::c_int,
2101        A: *mut blas_sparse_matrix,
2102        istat: *mut ::std::os::raw::c_int,
2103    );
2104}
2105extern "C" {
2106    pub fn BLAS_zuscr_begin(
2107        m: ::std::os::raw::c_int,
2108        n: ::std::os::raw::c_int,
2109    ) -> blas_sparse_matrix;
2110}
2111extern "C" {
2112    pub fn blas_zuscr_begin_(
2113        m: *mut ::std::os::raw::c_int,
2114        n: *mut ::std::os::raw::c_int,
2115        A: *mut blas_sparse_matrix,
2116        istat: *mut ::std::os::raw::c_int,
2117    );
2118}
2119extern "C" {
2120    pub fn BLAS_suscr_block_begin(
2121        Mb: ::std::os::raw::c_int,
2122        Nb: ::std::os::raw::c_int,
2123        k: ::std::os::raw::c_int,
2124        l: ::std::os::raw::c_int,
2125    ) -> blas_sparse_matrix;
2126}
2127extern "C" {
2128    pub fn blas_suscr_block_begin_(
2129        Mb: *mut ::std::os::raw::c_int,
2130        Nb: *mut ::std::os::raw::c_int,
2131        k: *mut ::std::os::raw::c_int,
2132        l: *mut ::std::os::raw::c_int,
2133        A: *mut blas_sparse_matrix,
2134        istat: *mut ::std::os::raw::c_int,
2135    );
2136}
2137extern "C" {
2138    pub fn BLAS_duscr_block_begin(
2139        Mb: ::std::os::raw::c_int,
2140        Nb: ::std::os::raw::c_int,
2141        k: ::std::os::raw::c_int,
2142        l: ::std::os::raw::c_int,
2143    ) -> blas_sparse_matrix;
2144}
2145extern "C" {
2146    pub fn blas_duscr_block_begin_(
2147        Mb: *mut ::std::os::raw::c_int,
2148        Nb: *mut ::std::os::raw::c_int,
2149        k: *mut ::std::os::raw::c_int,
2150        l: *mut ::std::os::raw::c_int,
2151        A: *mut blas_sparse_matrix,
2152        istat: *mut ::std::os::raw::c_int,
2153    );
2154}
2155extern "C" {
2156    pub fn BLAS_cuscr_block_begin(
2157        Mb: ::std::os::raw::c_int,
2158        Nb: ::std::os::raw::c_int,
2159        k: ::std::os::raw::c_int,
2160        l: ::std::os::raw::c_int,
2161    ) -> blas_sparse_matrix;
2162}
2163extern "C" {
2164    pub fn blas_cuscr_block_begin_(
2165        Mb: *mut ::std::os::raw::c_int,
2166        Nb: *mut ::std::os::raw::c_int,
2167        k: *mut ::std::os::raw::c_int,
2168        l: *mut ::std::os::raw::c_int,
2169        A: *mut blas_sparse_matrix,
2170        istat: *mut ::std::os::raw::c_int,
2171    );
2172}
2173extern "C" {
2174    pub fn BLAS_zuscr_block_begin(
2175        Mb: ::std::os::raw::c_int,
2176        Nb: ::std::os::raw::c_int,
2177        k: ::std::os::raw::c_int,
2178        l: ::std::os::raw::c_int,
2179    ) -> blas_sparse_matrix;
2180}
2181extern "C" {
2182    pub fn blas_zuscr_block_begin_(
2183        Mb: *mut ::std::os::raw::c_int,
2184        Nb: *mut ::std::os::raw::c_int,
2185        k: *mut ::std::os::raw::c_int,
2186        l: *mut ::std::os::raw::c_int,
2187        A: *mut blas_sparse_matrix,
2188        istat: *mut ::std::os::raw::c_int,
2189    );
2190}
2191extern "C" {
2192    pub fn BLAS_suscr_variable_block_begin(
2193        Mb: ::std::os::raw::c_int,
2194        Nb: ::std::os::raw::c_int,
2195        K: *const ::std::os::raw::c_int,
2196        L: *const ::std::os::raw::c_int,
2197    ) -> blas_sparse_matrix;
2198}
2199extern "C" {
2200    pub fn blas_suscr_variable_block_begin_(
2201        Mb: *mut ::std::os::raw::c_int,
2202        Nb: *mut ::std::os::raw::c_int,
2203        K: *const ::std::os::raw::c_int,
2204        L: *const ::std::os::raw::c_int,
2205        A: *mut blas_sparse_matrix,
2206        istat: *mut ::std::os::raw::c_int,
2207    );
2208}
2209extern "C" {
2210    pub fn BLAS_duscr_variable_block_begin(
2211        Mb: ::std::os::raw::c_int,
2212        Nb: ::std::os::raw::c_int,
2213        K: *const ::std::os::raw::c_int,
2214        L: *const ::std::os::raw::c_int,
2215    ) -> blas_sparse_matrix;
2216}
2217extern "C" {
2218    pub fn blas_duscr_variable_block_begin_(
2219        Mb: *mut ::std::os::raw::c_int,
2220        Nb: *mut ::std::os::raw::c_int,
2221        K: *const ::std::os::raw::c_int,
2222        L: *const ::std::os::raw::c_int,
2223        A: *mut blas_sparse_matrix,
2224        istat: *mut ::std::os::raw::c_int,
2225    );
2226}
2227extern "C" {
2228    pub fn BLAS_cuscr_variable_block_begin(
2229        Mb: ::std::os::raw::c_int,
2230        Nb: ::std::os::raw::c_int,
2231        K: *const ::std::os::raw::c_int,
2232        L: *const ::std::os::raw::c_int,
2233    ) -> blas_sparse_matrix;
2234}
2235extern "C" {
2236    pub fn blas_cuscr_variable_block_begin_(
2237        Mb: *mut ::std::os::raw::c_int,
2238        Nb: *mut ::std::os::raw::c_int,
2239        K: *const ::std::os::raw::c_int,
2240        L: *const ::std::os::raw::c_int,
2241        A: *mut blas_sparse_matrix,
2242        istat: *mut ::std::os::raw::c_int,
2243    );
2244}
2245extern "C" {
2246    pub fn BLAS_zuscr_variable_block_begin(
2247        Mb: ::std::os::raw::c_int,
2248        Nb: ::std::os::raw::c_int,
2249        K: *const ::std::os::raw::c_int,
2250        L: *const ::std::os::raw::c_int,
2251    ) -> blas_sparse_matrix;
2252}
2253extern "C" {
2254    pub fn blas_zuscr_variable_block_begin_(
2255        Mb: *mut ::std::os::raw::c_int,
2256        Nb: *mut ::std::os::raw::c_int,
2257        K: *const ::std::os::raw::c_int,
2258        L: *const ::std::os::raw::c_int,
2259        A: *mut blas_sparse_matrix,
2260        istat: *mut ::std::os::raw::c_int,
2261    );
2262}
2263extern "C" {
2264    pub fn BLAS_suscr_end(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2265}
2266extern "C" {
2267    pub fn blas_suscr_end_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2268}
2269extern "C" {
2270    pub fn BLAS_duscr_end(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2271}
2272extern "C" {
2273    pub fn blas_duscr_end_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2274}
2275extern "C" {
2276    pub fn BLAS_cuscr_end(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2277}
2278extern "C" {
2279    pub fn blas_cuscr_end_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2280}
2281extern "C" {
2282    pub fn BLAS_zuscr_end(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2283}
2284extern "C" {
2285    pub fn blas_zuscr_end_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2286}
2287extern "C" {
2288    pub fn BLAS_suscr_insert_entry(
2289        A: blas_sparse_matrix,
2290        val: f32,
2291        i: ::std::os::raw::c_int,
2292        j: ::std::os::raw::c_int,
2293    ) -> ::std::os::raw::c_int;
2294}
2295extern "C" {
2296    pub fn blas_suscr_insert_entry_(
2297        A: *mut blas_sparse_matrix,
2298        val: *mut f32,
2299        i: *mut ::std::os::raw::c_int,
2300        j: *mut ::std::os::raw::c_int,
2301        istat: *mut ::std::os::raw::c_int,
2302    );
2303}
2304extern "C" {
2305    pub fn BLAS_duscr_insert_entry(
2306        A: blas_sparse_matrix,
2307        val: f64,
2308        i: ::std::os::raw::c_int,
2309        j: ::std::os::raw::c_int,
2310    ) -> ::std::os::raw::c_int;
2311}
2312extern "C" {
2313    pub fn blas_duscr_insert_entry_(
2314        A: *mut blas_sparse_matrix,
2315        val: *mut f64,
2316        i: *mut ::std::os::raw::c_int,
2317        j: *mut ::std::os::raw::c_int,
2318        istat: *mut ::std::os::raw::c_int,
2319    );
2320}
2321extern "C" {
2322    pub fn BLAS_cuscr_insert_entry(
2323        A: blas_sparse_matrix,
2324        val: *const ::std::os::raw::c_void,
2325        i: ::std::os::raw::c_int,
2326        j: ::std::os::raw::c_int,
2327    ) -> ::std::os::raw::c_int;
2328}
2329extern "C" {
2330    pub fn blas_cuscr_insert_entry_(
2331        A: *mut blas_sparse_matrix,
2332        val: *const ::std::os::raw::c_void,
2333        i: *mut ::std::os::raw::c_int,
2334        j: *mut ::std::os::raw::c_int,
2335        istat: *mut ::std::os::raw::c_int,
2336    );
2337}
2338extern "C" {
2339    pub fn BLAS_zuscr_insert_entry(
2340        A: blas_sparse_matrix,
2341        val: *const ::std::os::raw::c_void,
2342        i: ::std::os::raw::c_int,
2343        j: ::std::os::raw::c_int,
2344    ) -> ::std::os::raw::c_int;
2345}
2346extern "C" {
2347    pub fn blas_zuscr_insert_entry_(
2348        A: *mut blas_sparse_matrix,
2349        val: *const ::std::os::raw::c_void,
2350        i: *mut ::std::os::raw::c_int,
2351        j: *mut ::std::os::raw::c_int,
2352        istat: *mut ::std::os::raw::c_int,
2353    );
2354}
2355extern "C" {
2356    pub fn BLAS_suscr_insert_entries(
2357        A: blas_sparse_matrix,
2358        nnz: ::std::os::raw::c_int,
2359        val: *const f32,
2360        indx: *const ::std::os::raw::c_int,
2361        jndx: *const ::std::os::raw::c_int,
2362    ) -> ::std::os::raw::c_int;
2363}
2364extern "C" {
2365    pub fn blas_suscr_insert_entries_(
2366        A: *mut blas_sparse_matrix,
2367        nnz: *mut ::std::os::raw::c_int,
2368        val: *const f32,
2369        indx: *const ::std::os::raw::c_int,
2370        jndx: *const ::std::os::raw::c_int,
2371        istat: *mut ::std::os::raw::c_int,
2372    );
2373}
2374extern "C" {
2375    pub fn BLAS_duscr_insert_entries(
2376        A: blas_sparse_matrix,
2377        nnz: ::std::os::raw::c_int,
2378        val: *const f64,
2379        indx: *const ::std::os::raw::c_int,
2380        jndx: *const ::std::os::raw::c_int,
2381    ) -> ::std::os::raw::c_int;
2382}
2383extern "C" {
2384    pub fn blas_duscr_insert_entries_(
2385        A: *mut blas_sparse_matrix,
2386        nnz: *mut ::std::os::raw::c_int,
2387        val: *const f64,
2388        indx: *const ::std::os::raw::c_int,
2389        jndx: *const ::std::os::raw::c_int,
2390        istat: *mut ::std::os::raw::c_int,
2391    );
2392}
2393extern "C" {
2394    pub fn BLAS_cuscr_insert_entries(
2395        A: blas_sparse_matrix,
2396        nnz: ::std::os::raw::c_int,
2397        val: *const ::std::os::raw::c_void,
2398        indx: *const ::std::os::raw::c_int,
2399        jndx: *const ::std::os::raw::c_int,
2400    ) -> ::std::os::raw::c_int;
2401}
2402extern "C" {
2403    pub fn blas_cuscr_insert_entries_(
2404        A: *mut blas_sparse_matrix,
2405        nnz: *mut ::std::os::raw::c_int,
2406        val: *const ::std::os::raw::c_void,
2407        indx: *const ::std::os::raw::c_int,
2408        jndx: *const ::std::os::raw::c_int,
2409        istat: *mut ::std::os::raw::c_int,
2410    );
2411}
2412extern "C" {
2413    pub fn BLAS_zuscr_insert_entries(
2414        A: blas_sparse_matrix,
2415        nnz: ::std::os::raw::c_int,
2416        val: *const ::std::os::raw::c_void,
2417        indx: *const ::std::os::raw::c_int,
2418        jndx: *const ::std::os::raw::c_int,
2419    ) -> ::std::os::raw::c_int;
2420}
2421extern "C" {
2422    pub fn blas_zuscr_insert_entries_(
2423        A: *mut blas_sparse_matrix,
2424        nnz: *mut ::std::os::raw::c_int,
2425        val: *const ::std::os::raw::c_void,
2426        indx: *const ::std::os::raw::c_int,
2427        jndx: *const ::std::os::raw::c_int,
2428        istat: *mut ::std::os::raw::c_int,
2429    );
2430}
2431extern "C" {
2432    pub fn BLAS_suscr_insert_col(
2433        A: blas_sparse_matrix,
2434        j: ::std::os::raw::c_int,
2435        nnz: ::std::os::raw::c_int,
2436        val: *const f32,
2437        indx: *const ::std::os::raw::c_int,
2438    ) -> ::std::os::raw::c_int;
2439}
2440extern "C" {
2441    pub fn blas_suscr_insert_col_(
2442        A: *mut blas_sparse_matrix,
2443        j: *mut ::std::os::raw::c_int,
2444        nnz: *mut ::std::os::raw::c_int,
2445        val: *const f32,
2446        indx: *const ::std::os::raw::c_int,
2447        istat: *mut ::std::os::raw::c_int,
2448    );
2449}
2450extern "C" {
2451    pub fn BLAS_duscr_insert_col(
2452        A: blas_sparse_matrix,
2453        j: ::std::os::raw::c_int,
2454        nnz: ::std::os::raw::c_int,
2455        val: *const f64,
2456        indx: *const ::std::os::raw::c_int,
2457    ) -> ::std::os::raw::c_int;
2458}
2459extern "C" {
2460    pub fn blas_duscr_insert_col_(
2461        A: *mut blas_sparse_matrix,
2462        j: *mut ::std::os::raw::c_int,
2463        nnz: *mut ::std::os::raw::c_int,
2464        val: *const f64,
2465        indx: *const ::std::os::raw::c_int,
2466        istat: *mut ::std::os::raw::c_int,
2467    );
2468}
2469extern "C" {
2470    pub fn BLAS_cuscr_insert_col(
2471        A: blas_sparse_matrix,
2472        j: ::std::os::raw::c_int,
2473        nnz: ::std::os::raw::c_int,
2474        val: *const ::std::os::raw::c_void,
2475        indx: *const ::std::os::raw::c_int,
2476    ) -> ::std::os::raw::c_int;
2477}
2478extern "C" {
2479    pub fn blas_cuscr_insert_col_(
2480        A: *mut blas_sparse_matrix,
2481        j: *mut ::std::os::raw::c_int,
2482        nnz: *mut ::std::os::raw::c_int,
2483        val: *const ::std::os::raw::c_void,
2484        indx: *const ::std::os::raw::c_int,
2485        istat: *mut ::std::os::raw::c_int,
2486    );
2487}
2488extern "C" {
2489    pub fn BLAS_zuscr_insert_col(
2490        A: blas_sparse_matrix,
2491        j: ::std::os::raw::c_int,
2492        nnz: ::std::os::raw::c_int,
2493        val: *const ::std::os::raw::c_void,
2494        indx: *const ::std::os::raw::c_int,
2495    ) -> ::std::os::raw::c_int;
2496}
2497extern "C" {
2498    pub fn blas_zuscr_insert_col_(
2499        A: *mut blas_sparse_matrix,
2500        j: *mut ::std::os::raw::c_int,
2501        nnz: *mut ::std::os::raw::c_int,
2502        val: *const ::std::os::raw::c_void,
2503        indx: *const ::std::os::raw::c_int,
2504        istat: *mut ::std::os::raw::c_int,
2505    );
2506}
2507extern "C" {
2508    pub fn BLAS_suscr_insert_row(
2509        A: blas_sparse_matrix,
2510        i: ::std::os::raw::c_int,
2511        nnz: ::std::os::raw::c_int,
2512        val: *const f32,
2513        indx: *const ::std::os::raw::c_int,
2514    ) -> ::std::os::raw::c_int;
2515}
2516extern "C" {
2517    pub fn blas_suscr_insert_row_(
2518        A: *mut blas_sparse_matrix,
2519        i: *mut ::std::os::raw::c_int,
2520        nnz: *mut ::std::os::raw::c_int,
2521        val: *const f32,
2522        indx: *const ::std::os::raw::c_int,
2523        istat: *mut ::std::os::raw::c_int,
2524    );
2525}
2526extern "C" {
2527    pub fn BLAS_duscr_insert_row(
2528        A: blas_sparse_matrix,
2529        i: ::std::os::raw::c_int,
2530        nnz: ::std::os::raw::c_int,
2531        val: *const f64,
2532        indx: *const ::std::os::raw::c_int,
2533    ) -> ::std::os::raw::c_int;
2534}
2535extern "C" {
2536    pub fn blas_duscr_insert_row_(
2537        A: *mut blas_sparse_matrix,
2538        i: *mut ::std::os::raw::c_int,
2539        nnz: *mut ::std::os::raw::c_int,
2540        val: *const f64,
2541        indx: *const ::std::os::raw::c_int,
2542        istat: *mut ::std::os::raw::c_int,
2543    );
2544}
2545extern "C" {
2546    pub fn BLAS_cuscr_insert_row(
2547        A: blas_sparse_matrix,
2548        i: ::std::os::raw::c_int,
2549        nnz: ::std::os::raw::c_int,
2550        val: *const ::std::os::raw::c_void,
2551        indx: *const ::std::os::raw::c_int,
2552    ) -> ::std::os::raw::c_int;
2553}
2554extern "C" {
2555    pub fn blas_cuscr_insert_row_(
2556        A: *mut blas_sparse_matrix,
2557        i: *mut ::std::os::raw::c_int,
2558        nnz: *mut ::std::os::raw::c_int,
2559        val: *const ::std::os::raw::c_void,
2560        indx: *const ::std::os::raw::c_int,
2561        istat: *mut ::std::os::raw::c_int,
2562    );
2563}
2564extern "C" {
2565    pub fn BLAS_zuscr_insert_row(
2566        A: blas_sparse_matrix,
2567        i: ::std::os::raw::c_int,
2568        nnz: ::std::os::raw::c_int,
2569        val: *const ::std::os::raw::c_void,
2570        indx: *const ::std::os::raw::c_int,
2571    ) -> ::std::os::raw::c_int;
2572}
2573extern "C" {
2574    pub fn blas_zuscr_insert_row_(
2575        A: *mut blas_sparse_matrix,
2576        i: *mut ::std::os::raw::c_int,
2577        nnz: *mut ::std::os::raw::c_int,
2578        val: *const ::std::os::raw::c_void,
2579        indx: *const ::std::os::raw::c_int,
2580        istat: *mut ::std::os::raw::c_int,
2581    );
2582}
2583extern "C" {
2584    pub fn BLAS_suscr_insert_clique(
2585        A: blas_sparse_matrix,
2586        k: ::std::os::raw::c_int,
2587        l: ::std::os::raw::c_int,
2588        val: *const f32,
2589        row_stride: ::std::os::raw::c_int,
2590        col_stride: ::std::os::raw::c_int,
2591        indx: *const ::std::os::raw::c_int,
2592        jndx: *const ::std::os::raw::c_int,
2593    ) -> ::std::os::raw::c_int;
2594}
2595extern "C" {
2596    pub fn blas_suscr_insert_clique_(
2597        A: *mut blas_sparse_matrix,
2598        k: *const ::std::os::raw::c_int,
2599        l: *const ::std::os::raw::c_int,
2600        val: *const f32,
2601        row_stride: *const ::std::os::raw::c_int,
2602        col_stride: *const ::std::os::raw::c_int,
2603        indx: *const ::std::os::raw::c_int,
2604        jndx: *const ::std::os::raw::c_int,
2605        istat: *mut ::std::os::raw::c_int,
2606    );
2607}
2608extern "C" {
2609    pub fn BLAS_duscr_insert_clique(
2610        A: blas_sparse_matrix,
2611        k: ::std::os::raw::c_int,
2612        l: ::std::os::raw::c_int,
2613        val: *const f64,
2614        row_stride: ::std::os::raw::c_int,
2615        col_stride: ::std::os::raw::c_int,
2616        indx: *const ::std::os::raw::c_int,
2617        jndx: *const ::std::os::raw::c_int,
2618    ) -> ::std::os::raw::c_int;
2619}
2620extern "C" {
2621    pub fn blas_duscr_insert_clique_(
2622        A: *mut blas_sparse_matrix,
2623        k: *const ::std::os::raw::c_int,
2624        l: *const ::std::os::raw::c_int,
2625        val: *const f64,
2626        row_stride: *const ::std::os::raw::c_int,
2627        col_stride: *const ::std::os::raw::c_int,
2628        indx: *const ::std::os::raw::c_int,
2629        jndx: *const ::std::os::raw::c_int,
2630        istat: *mut ::std::os::raw::c_int,
2631    );
2632}
2633extern "C" {
2634    pub fn BLAS_cuscr_insert_clique(
2635        A: blas_sparse_matrix,
2636        k: ::std::os::raw::c_int,
2637        l: ::std::os::raw::c_int,
2638        val: *const ::std::os::raw::c_void,
2639        row_stride: ::std::os::raw::c_int,
2640        col_stride: ::std::os::raw::c_int,
2641        indx: *const ::std::os::raw::c_int,
2642        jndx: *const ::std::os::raw::c_int,
2643    ) -> ::std::os::raw::c_int;
2644}
2645extern "C" {
2646    pub fn blas_cuscr_insert_clique_(
2647        A: *mut blas_sparse_matrix,
2648        k: *const ::std::os::raw::c_int,
2649        l: *const ::std::os::raw::c_int,
2650        val: *const ::std::os::raw::c_void,
2651        row_stride: *const ::std::os::raw::c_int,
2652        col_stride: *const ::std::os::raw::c_int,
2653        indx: *const ::std::os::raw::c_int,
2654        jndx: *const ::std::os::raw::c_int,
2655        istat: *mut ::std::os::raw::c_int,
2656    );
2657}
2658extern "C" {
2659    pub fn BLAS_zuscr_insert_clique(
2660        A: blas_sparse_matrix,
2661        k: ::std::os::raw::c_int,
2662        l: ::std::os::raw::c_int,
2663        val: *const ::std::os::raw::c_void,
2664        row_stride: ::std::os::raw::c_int,
2665        col_stride: ::std::os::raw::c_int,
2666        indx: *const ::std::os::raw::c_int,
2667        jndx: *const ::std::os::raw::c_int,
2668    ) -> ::std::os::raw::c_int;
2669}
2670extern "C" {
2671    pub fn blas_zuscr_insert_clique_(
2672        A: *mut blas_sparse_matrix,
2673        k: *const ::std::os::raw::c_int,
2674        l: *const ::std::os::raw::c_int,
2675        val: *const ::std::os::raw::c_void,
2676        row_stride: *const ::std::os::raw::c_int,
2677        col_stride: *const ::std::os::raw::c_int,
2678        indx: *const ::std::os::raw::c_int,
2679        jndx: *const ::std::os::raw::c_int,
2680        istat: *mut ::std::os::raw::c_int,
2681    );
2682}
2683extern "C" {
2684    pub fn BLAS_suscr_insert_block(
2685        A: blas_sparse_matrix,
2686        val: *const f32,
2687        row_stride: ::std::os::raw::c_int,
2688        col_stride: ::std::os::raw::c_int,
2689        i: ::std::os::raw::c_int,
2690        j: ::std::os::raw::c_int,
2691    ) -> ::std::os::raw::c_int;
2692}
2693extern "C" {
2694    pub fn blas_suscr_insert_block_(
2695        A: *mut blas_sparse_matrix,
2696        val: *const f32,
2697        row_stride: *mut ::std::os::raw::c_int,
2698        col_stride: *mut ::std::os::raw::c_int,
2699        i: *mut ::std::os::raw::c_int,
2700        j: *mut ::std::os::raw::c_int,
2701        istat: *mut ::std::os::raw::c_int,
2702    );
2703}
2704extern "C" {
2705    pub fn BLAS_duscr_insert_block(
2706        A: blas_sparse_matrix,
2707        val: *const f64,
2708        row_stride: ::std::os::raw::c_int,
2709        col_stride: ::std::os::raw::c_int,
2710        i: ::std::os::raw::c_int,
2711        j: ::std::os::raw::c_int,
2712    ) -> ::std::os::raw::c_int;
2713}
2714extern "C" {
2715    pub fn blas_duscr_insert_block_(
2716        A: *mut blas_sparse_matrix,
2717        val: *const f64,
2718        row_stride: *mut ::std::os::raw::c_int,
2719        col_stride: *mut ::std::os::raw::c_int,
2720        i: *mut ::std::os::raw::c_int,
2721        j: *mut ::std::os::raw::c_int,
2722        istat: *mut ::std::os::raw::c_int,
2723    );
2724}
2725extern "C" {
2726    pub fn BLAS_cuscr_insert_block(
2727        A: blas_sparse_matrix,
2728        val: *const ::std::os::raw::c_void,
2729        row_stride: ::std::os::raw::c_int,
2730        col_stride: ::std::os::raw::c_int,
2731        i: ::std::os::raw::c_int,
2732        j: ::std::os::raw::c_int,
2733    ) -> ::std::os::raw::c_int;
2734}
2735extern "C" {
2736    pub fn blas_cuscr_insert_block_(
2737        A: *mut blas_sparse_matrix,
2738        val: *const ::std::os::raw::c_void,
2739        row_stride: *mut ::std::os::raw::c_int,
2740        col_stride: *mut ::std::os::raw::c_int,
2741        i: *mut ::std::os::raw::c_int,
2742        j: *mut ::std::os::raw::c_int,
2743        istat: *mut ::std::os::raw::c_int,
2744    );
2745}
2746extern "C" {
2747    pub fn BLAS_zuscr_insert_block(
2748        A: blas_sparse_matrix,
2749        val: *const ::std::os::raw::c_void,
2750        row_stride: ::std::os::raw::c_int,
2751        col_stride: ::std::os::raw::c_int,
2752        i: ::std::os::raw::c_int,
2753        j: ::std::os::raw::c_int,
2754    ) -> ::std::os::raw::c_int;
2755}
2756extern "C" {
2757    pub fn blas_zuscr_insert_block_(
2758        A: *mut blas_sparse_matrix,
2759        val: *const ::std::os::raw::c_void,
2760        row_stride: *mut ::std::os::raw::c_int,
2761        col_stride: *mut ::std::os::raw::c_int,
2762        i: *mut ::std::os::raw::c_int,
2763        j: *mut ::std::os::raw::c_int,
2764        istat: *mut ::std::os::raw::c_int,
2765    );
2766}
2767extern "C" {
2768    pub fn BLAS_uscr_end(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2769}
2770extern "C" {
2771    pub fn blas_uscr_end_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2772}
2773extern "C" {
2774    pub fn BLAS_usds(A: blas_sparse_matrix) -> ::std::os::raw::c_int;
2775}
2776extern "C" {
2777    pub fn blas_usds_(A: *mut blas_sparse_matrix, istat: *mut ::std::os::raw::c_int);
2778}
2779extern "C" {
2780    pub fn BLAS_susrows_scale(
2781        A: blas_sparse_matrix,
2782        d: *const f32,
2783        trans: blas_trans_type,
2784    ) -> ::std::os::raw::c_int;
2785}
2786extern "C" {
2787    pub fn blas_susrows_scale_(
2788        A: *mut blas_sparse_matrix,
2789        d: *const f32,
2790        trans: *mut blas_trans_type,
2791        istat: *mut ::std::os::raw::c_int,
2792    );
2793}
2794extern "C" {
2795    pub fn BLAS_dusrows_scale(
2796        A: blas_sparse_matrix,
2797        d: *const f64,
2798        trans: blas_trans_type,
2799    ) -> ::std::os::raw::c_int;
2800}
2801extern "C" {
2802    pub fn blas_dusrows_scale_(
2803        A: *mut blas_sparse_matrix,
2804        d: *const f64,
2805        trans: *mut blas_trans_type,
2806        istat: *mut ::std::os::raw::c_int,
2807    );
2808}
2809extern "C" {
2810    pub fn BLAS_cusrows_scale(
2811        A: blas_sparse_matrix,
2812        d: *const ::std::os::raw::c_void,
2813        trans: blas_trans_type,
2814    ) -> ::std::os::raw::c_int;
2815}
2816extern "C" {
2817    pub fn blas_cusrows_scale_(
2818        A: *mut blas_sparse_matrix,
2819        d: *const ::std::os::raw::c_void,
2820        trans: *mut blas_trans_type,
2821        istat: *mut ::std::os::raw::c_int,
2822    );
2823}
2824extern "C" {
2825    pub fn BLAS_zusrows_scale(
2826        A: blas_sparse_matrix,
2827        d: *const ::std::os::raw::c_void,
2828        trans: blas_trans_type,
2829    ) -> ::std::os::raw::c_int;
2830}
2831extern "C" {
2832    pub fn blas_zusrows_scale_(
2833        A: *mut blas_sparse_matrix,
2834        d: *const ::std::os::raw::c_void,
2835        trans: *mut blas_trans_type,
2836        istat: *mut ::std::os::raw::c_int,
2837    );
2838}
2839extern "C" {
2840    pub fn BLAS_susget_diag(A: blas_sparse_matrix, d: *mut f32) -> ::std::os::raw::c_int;
2841}
2842extern "C" {
2843    pub fn blas_susget_diag_(
2844        A: *mut blas_sparse_matrix,
2845        d: *mut f32,
2846        istat: *mut ::std::os::raw::c_int,
2847    );
2848}
2849extern "C" {
2850    pub fn BLAS_dusget_diag(A: blas_sparse_matrix, d: *mut f64) -> ::std::os::raw::c_int;
2851}
2852extern "C" {
2853    pub fn blas_dusget_diag_(
2854        A: *mut blas_sparse_matrix,
2855        d: *mut f64,
2856        istat: *mut ::std::os::raw::c_int,
2857    );
2858}
2859extern "C" {
2860    pub fn BLAS_cusget_diag(
2861        A: blas_sparse_matrix,
2862        d: *mut ::std::os::raw::c_void,
2863    ) -> ::std::os::raw::c_int;
2864}
2865extern "C" {
2866    pub fn blas_cusget_diag_(
2867        A: *mut blas_sparse_matrix,
2868        d: *mut ::std::os::raw::c_void,
2869        istat: *mut ::std::os::raw::c_int,
2870    );
2871}
2872extern "C" {
2873    pub fn BLAS_zusget_diag(
2874        A: blas_sparse_matrix,
2875        d: *mut ::std::os::raw::c_void,
2876    ) -> ::std::os::raw::c_int;
2877}
2878extern "C" {
2879    pub fn blas_zusget_diag_(
2880        A: *mut blas_sparse_matrix,
2881        d: *mut ::std::os::raw::c_void,
2882        istat: *mut ::std::os::raw::c_int,
2883    );
2884}
2885extern "C" {
2886    pub fn BLAS_susget_rows_nnz(
2887        A: blas_sparse_matrix,
2888        fr: ::std::os::raw::c_int,
2889        lr: ::std::os::raw::c_int,
2890        nnzp: *mut ::std::os::raw::c_int,
2891    ) -> ::std::os::raw::c_int;
2892}
2893extern "C" {
2894    pub fn blas_susget_rows_nnz_(
2895        A: *mut blas_sparse_matrix,
2896        fr: *mut ::std::os::raw::c_int,
2897        lr: *mut ::std::os::raw::c_int,
2898        nnzp: *mut ::std::os::raw::c_int,
2899        istat: *mut ::std::os::raw::c_int,
2900    );
2901}
2902extern "C" {
2903    pub fn BLAS_dusget_rows_nnz(
2904        A: blas_sparse_matrix,
2905        fr: ::std::os::raw::c_int,
2906        lr: ::std::os::raw::c_int,
2907        nnzp: *mut ::std::os::raw::c_int,
2908    ) -> ::std::os::raw::c_int;
2909}
2910extern "C" {
2911    pub fn blas_dusget_rows_nnz_(
2912        A: *mut blas_sparse_matrix,
2913        fr: *mut ::std::os::raw::c_int,
2914        lr: *mut ::std::os::raw::c_int,
2915        nnzp: *mut ::std::os::raw::c_int,
2916        istat: *mut ::std::os::raw::c_int,
2917    );
2918}
2919extern "C" {
2920    pub fn BLAS_cusget_rows_nnz(
2921        A: blas_sparse_matrix,
2922        fr: ::std::os::raw::c_int,
2923        lr: ::std::os::raw::c_int,
2924        nnzp: *mut ::std::os::raw::c_int,
2925    ) -> ::std::os::raw::c_int;
2926}
2927extern "C" {
2928    pub fn blas_cusget_rows_nnz_(
2929        A: *mut blas_sparse_matrix,
2930        fr: *mut ::std::os::raw::c_int,
2931        lr: *mut ::std::os::raw::c_int,
2932        nnzp: *mut ::std::os::raw::c_int,
2933        istat: *mut ::std::os::raw::c_int,
2934    );
2935}
2936extern "C" {
2937    pub fn BLAS_zusget_rows_nnz(
2938        A: blas_sparse_matrix,
2939        fr: ::std::os::raw::c_int,
2940        lr: ::std::os::raw::c_int,
2941        nnzp: *mut ::std::os::raw::c_int,
2942    ) -> ::std::os::raw::c_int;
2943}
2944extern "C" {
2945    pub fn blas_zusget_rows_nnz_(
2946        A: *mut blas_sparse_matrix,
2947        fr: *mut ::std::os::raw::c_int,
2948        lr: *mut ::std::os::raw::c_int,
2949        nnzp: *mut ::std::os::raw::c_int,
2950        istat: *mut ::std::os::raw::c_int,
2951    );
2952}
2953extern "C" {
2954    pub fn BLAS_susget_rows_sparse(
2955        A: blas_sparse_matrix,
2956        VA: *mut f32,
2957        IA: *mut ::std::os::raw::c_int,
2958        JA: *mut ::std::os::raw::c_int,
2959        nnz: *mut ::std::os::raw::c_int,
2960        fr: ::std::os::raw::c_int,
2961        lr: ::std::os::raw::c_int,
2962    ) -> ::std::os::raw::c_int;
2963}
2964extern "C" {
2965    pub fn blas_susget_rows_sparse_(
2966        A: *mut blas_sparse_matrix,
2967        VA: *mut f32,
2968        IA: *mut ::std::os::raw::c_int,
2969        JA: *mut ::std::os::raw::c_int,
2970        nnz: *mut ::std::os::raw::c_int,
2971        fr: *mut ::std::os::raw::c_int,
2972        lr: *mut ::std::os::raw::c_int,
2973        istat: *mut ::std::os::raw::c_int,
2974    );
2975}
2976extern "C" {
2977    pub fn BLAS_dusget_rows_sparse(
2978        A: blas_sparse_matrix,
2979        VA: *mut f64,
2980        IA: *mut ::std::os::raw::c_int,
2981        JA: *mut ::std::os::raw::c_int,
2982        nnz: *mut ::std::os::raw::c_int,
2983        fr: ::std::os::raw::c_int,
2984        lr: ::std::os::raw::c_int,
2985    ) -> ::std::os::raw::c_int;
2986}
2987extern "C" {
2988    pub fn blas_dusget_rows_sparse_(
2989        A: *mut blas_sparse_matrix,
2990        VA: *mut f64,
2991        IA: *mut ::std::os::raw::c_int,
2992        JA: *mut ::std::os::raw::c_int,
2993        nnz: *mut ::std::os::raw::c_int,
2994        fr: *mut ::std::os::raw::c_int,
2995        lr: *mut ::std::os::raw::c_int,
2996        istat: *mut ::std::os::raw::c_int,
2997    );
2998}
2999extern "C" {
3000    pub fn BLAS_cusget_rows_sparse(
3001        A: blas_sparse_matrix,
3002        VA: *mut ::std::os::raw::c_void,
3003        IA: *mut ::std::os::raw::c_int,
3004        JA: *mut ::std::os::raw::c_int,
3005        nnz: *mut ::std::os::raw::c_int,
3006        fr: ::std::os::raw::c_int,
3007        lr: ::std::os::raw::c_int,
3008    ) -> ::std::os::raw::c_int;
3009}
3010extern "C" {
3011    pub fn blas_cusget_rows_sparse_(
3012        A: *mut blas_sparse_matrix,
3013        VA: *mut ::std::os::raw::c_void,
3014        IA: *mut ::std::os::raw::c_int,
3015        JA: *mut ::std::os::raw::c_int,
3016        nnz: *mut ::std::os::raw::c_int,
3017        fr: *mut ::std::os::raw::c_int,
3018        lr: *mut ::std::os::raw::c_int,
3019        istat: *mut ::std::os::raw::c_int,
3020    );
3021}
3022extern "C" {
3023    pub fn BLAS_zusget_rows_sparse(
3024        A: blas_sparse_matrix,
3025        VA: *mut ::std::os::raw::c_void,
3026        IA: *mut ::std::os::raw::c_int,
3027        JA: *mut ::std::os::raw::c_int,
3028        nnz: *mut ::std::os::raw::c_int,
3029        fr: ::std::os::raw::c_int,
3030        lr: ::std::os::raw::c_int,
3031    ) -> ::std::os::raw::c_int;
3032}
3033extern "C" {
3034    pub fn blas_zusget_rows_sparse_(
3035        A: *mut blas_sparse_matrix,
3036        VA: *mut ::std::os::raw::c_void,
3037        IA: *mut ::std::os::raw::c_int,
3038        JA: *mut ::std::os::raw::c_int,
3039        nnz: *mut ::std::os::raw::c_int,
3040        fr: *mut ::std::os::raw::c_int,
3041        lr: *mut ::std::os::raw::c_int,
3042        istat: *mut ::std::os::raw::c_int,
3043    );
3044}
3045extern "C" {
3046    pub fn BLAS_susget_matrix_nnz(
3047        A: blas_sparse_matrix,
3048        nnz: *mut ::std::os::raw::c_int,
3049    ) -> ::std::os::raw::c_int;
3050}
3051extern "C" {
3052    pub fn blas_susget_matrix_nnz_(
3053        A: *mut blas_sparse_matrix,
3054        nnz: *mut ::std::os::raw::c_int,
3055        istat: *mut ::std::os::raw::c_int,
3056    );
3057}
3058extern "C" {
3059    pub fn BLAS_dusget_matrix_nnz(
3060        A: blas_sparse_matrix,
3061        nnz: *mut ::std::os::raw::c_int,
3062    ) -> ::std::os::raw::c_int;
3063}
3064extern "C" {
3065    pub fn blas_dusget_matrix_nnz_(
3066        A: *mut blas_sparse_matrix,
3067        nnz: *mut ::std::os::raw::c_int,
3068        istat: *mut ::std::os::raw::c_int,
3069    );
3070}
3071extern "C" {
3072    pub fn BLAS_cusget_matrix_nnz(
3073        A: blas_sparse_matrix,
3074        nnz: *mut ::std::os::raw::c_int,
3075    ) -> ::std::os::raw::c_int;
3076}
3077extern "C" {
3078    pub fn blas_cusget_matrix_nnz_(
3079        A: *mut blas_sparse_matrix,
3080        nnz: *mut ::std::os::raw::c_int,
3081        istat: *mut ::std::os::raw::c_int,
3082    );
3083}
3084extern "C" {
3085    pub fn BLAS_zusget_matrix_nnz(
3086        A: blas_sparse_matrix,
3087        nnz: *mut ::std::os::raw::c_int,
3088    ) -> ::std::os::raw::c_int;
3089}
3090extern "C" {
3091    pub fn blas_zusget_matrix_nnz_(
3092        A: *mut blas_sparse_matrix,
3093        nnz: *mut ::std::os::raw::c_int,
3094        istat: *mut ::std::os::raw::c_int,
3095    );
3096}
3097extern "C" {
3098    pub fn BLAS_susget_infinity_norm(
3099        A: blas_sparse_matrix,
3100        in_: *mut f32,
3101        trans: blas_trans_type,
3102    ) -> ::std::os::raw::c_int;
3103}
3104extern "C" {
3105    pub fn blas_susget_infinity_norm_(
3106        A: *mut blas_sparse_matrix,
3107        in_: *mut f32,
3108        trans: *mut blas_trans_type,
3109        istat: *mut ::std::os::raw::c_int,
3110    );
3111}
3112extern "C" {
3113    pub fn BLAS_dusget_infinity_norm(
3114        A: blas_sparse_matrix,
3115        in_: *mut f64,
3116        trans: blas_trans_type,
3117    ) -> ::std::os::raw::c_int;
3118}
3119extern "C" {
3120    pub fn blas_dusget_infinity_norm_(
3121        A: *mut blas_sparse_matrix,
3122        in_: *mut f64,
3123        trans: *mut blas_trans_type,
3124        istat: *mut ::std::os::raw::c_int,
3125    );
3126}
3127extern "C" {
3128    pub fn BLAS_cusget_infinity_norm(
3129        A: blas_sparse_matrix,
3130        in_: *mut ::std::os::raw::c_void,
3131        trans: blas_trans_type,
3132    ) -> ::std::os::raw::c_int;
3133}
3134extern "C" {
3135    pub fn blas_cusget_infinity_norm_(
3136        A: *mut blas_sparse_matrix,
3137        in_: *mut ::std::os::raw::c_void,
3138        trans: *mut blas_trans_type,
3139        istat: *mut ::std::os::raw::c_int,
3140    );
3141}
3142extern "C" {
3143    pub fn BLAS_zusget_infinity_norm(
3144        A: blas_sparse_matrix,
3145        in_: *mut ::std::os::raw::c_void,
3146        trans: blas_trans_type,
3147    ) -> ::std::os::raw::c_int;
3148}
3149extern "C" {
3150    pub fn blas_zusget_infinity_norm_(
3151        A: *mut blas_sparse_matrix,
3152        in_: *mut ::std::os::raw::c_void,
3153        trans: *mut blas_trans_type,
3154        istat: *mut ::std::os::raw::c_int,
3155    );
3156}
3157extern "C" {
3158    pub fn BLAS_susset_elements(
3159        A: blas_sparse_matrix,
3160        ia: *const ::std::os::raw::c_int,
3161        ja: *const ::std::os::raw::c_int,
3162        va: *const f32,
3163        nnz: ::std::os::raw::c_int,
3164    ) -> ::std::os::raw::c_int;
3165}
3166extern "C" {
3167    pub fn blas_susset_elements_(
3168        A: *mut blas_sparse_matrix,
3169        ia: *const ::std::os::raw::c_int,
3170        ja: *const ::std::os::raw::c_int,
3171        va: *const f32,
3172        nnz: *mut ::std::os::raw::c_int,
3173        istat: *mut ::std::os::raw::c_int,
3174    );
3175}
3176extern "C" {
3177    pub fn BLAS_dusset_elements(
3178        A: blas_sparse_matrix,
3179        ia: *const ::std::os::raw::c_int,
3180        ja: *const ::std::os::raw::c_int,
3181        va: *const f64,
3182        nnz: ::std::os::raw::c_int,
3183    ) -> ::std::os::raw::c_int;
3184}
3185extern "C" {
3186    pub fn blas_dusset_elements_(
3187        A: *mut blas_sparse_matrix,
3188        ia: *const ::std::os::raw::c_int,
3189        ja: *const ::std::os::raw::c_int,
3190        va: *const f64,
3191        nnz: *mut ::std::os::raw::c_int,
3192        istat: *mut ::std::os::raw::c_int,
3193    );
3194}
3195extern "C" {
3196    pub fn BLAS_cusset_elements(
3197        A: blas_sparse_matrix,
3198        ia: *const ::std::os::raw::c_int,
3199        ja: *const ::std::os::raw::c_int,
3200        va: *const ::std::os::raw::c_void,
3201        nnz: ::std::os::raw::c_int,
3202    ) -> ::std::os::raw::c_int;
3203}
3204extern "C" {
3205    pub fn blas_cusset_elements_(
3206        A: *mut blas_sparse_matrix,
3207        ia: *const ::std::os::raw::c_int,
3208        ja: *const ::std::os::raw::c_int,
3209        va: *const ::std::os::raw::c_void,
3210        nnz: *mut ::std::os::raw::c_int,
3211        istat: *mut ::std::os::raw::c_int,
3212    );
3213}
3214extern "C" {
3215    pub fn BLAS_zusset_elements(
3216        A: blas_sparse_matrix,
3217        ia: *const ::std::os::raw::c_int,
3218        ja: *const ::std::os::raw::c_int,
3219        va: *const ::std::os::raw::c_void,
3220        nnz: ::std::os::raw::c_int,
3221    ) -> ::std::os::raw::c_int;
3222}
3223extern "C" {
3224    pub fn blas_zusset_elements_(
3225        A: *mut blas_sparse_matrix,
3226        ia: *const ::std::os::raw::c_int,
3227        ja: *const ::std::os::raw::c_int,
3228        va: *const ::std::os::raw::c_void,
3229        nnz: *mut ::std::os::raw::c_int,
3230        istat: *mut ::std::os::raw::c_int,
3231    );
3232}
3233extern "C" {
3234    pub fn BLAS_susset_element(
3235        A: blas_sparse_matrix,
3236        i: ::std::os::raw::c_int,
3237        j: ::std::os::raw::c_int,
3238        v: *mut f32,
3239    ) -> ::std::os::raw::c_int;
3240}
3241extern "C" {
3242    pub fn blas_susset_element_(
3243        A: *mut blas_sparse_matrix,
3244        i: *mut ::std::os::raw::c_int,
3245        j: *mut ::std::os::raw::c_int,
3246        v: *mut f32,
3247        istat: *mut ::std::os::raw::c_int,
3248    );
3249}
3250extern "C" {
3251    pub fn BLAS_dusset_element(
3252        A: blas_sparse_matrix,
3253        i: ::std::os::raw::c_int,
3254        j: ::std::os::raw::c_int,
3255        v: *mut f64,
3256    ) -> ::std::os::raw::c_int;
3257}
3258extern "C" {
3259    pub fn blas_dusset_element_(
3260        A: *mut blas_sparse_matrix,
3261        i: *mut ::std::os::raw::c_int,
3262        j: *mut ::std::os::raw::c_int,
3263        v: *mut f64,
3264        istat: *mut ::std::os::raw::c_int,
3265    );
3266}
3267extern "C" {
3268    pub fn BLAS_cusset_element(
3269        A: blas_sparse_matrix,
3270        i: ::std::os::raw::c_int,
3271        j: ::std::os::raw::c_int,
3272        v: *mut ::std::os::raw::c_void,
3273    ) -> ::std::os::raw::c_int;
3274}
3275extern "C" {
3276    pub fn blas_cusset_element_(
3277        A: *mut blas_sparse_matrix,
3278        i: *mut ::std::os::raw::c_int,
3279        j: *mut ::std::os::raw::c_int,
3280        v: *mut ::std::os::raw::c_void,
3281        istat: *mut ::std::os::raw::c_int,
3282    );
3283}
3284extern "C" {
3285    pub fn BLAS_zusset_element(
3286        A: blas_sparse_matrix,
3287        i: ::std::os::raw::c_int,
3288        j: ::std::os::raw::c_int,
3289        v: *mut ::std::os::raw::c_void,
3290    ) -> ::std::os::raw::c_int;
3291}
3292extern "C" {
3293    pub fn blas_zusset_element_(
3294        A: *mut blas_sparse_matrix,
3295        i: *mut ::std::os::raw::c_int,
3296        j: *mut ::std::os::raw::c_int,
3297        v: *mut ::std::os::raw::c_void,
3298        istat: *mut ::std::os::raw::c_int,
3299    );
3300}
3301extern "C" {
3302    pub fn BLAS_susget_element(
3303        A: blas_sparse_matrix,
3304        i: ::std::os::raw::c_int,
3305        j: ::std::os::raw::c_int,
3306        v: *mut f32,
3307    ) -> ::std::os::raw::c_int;
3308}
3309extern "C" {
3310    pub fn blas_susget_element_(
3311        A: *mut blas_sparse_matrix,
3312        i: *mut ::std::os::raw::c_int,
3313        j: *mut ::std::os::raw::c_int,
3314        v: *mut f32,
3315        istat: *mut ::std::os::raw::c_int,
3316    );
3317}
3318extern "C" {
3319    pub fn BLAS_dusget_element(
3320        A: blas_sparse_matrix,
3321        i: ::std::os::raw::c_int,
3322        j: ::std::os::raw::c_int,
3323        v: *mut f64,
3324    ) -> ::std::os::raw::c_int;
3325}
3326extern "C" {
3327    pub fn blas_dusget_element_(
3328        A: *mut blas_sparse_matrix,
3329        i: *mut ::std::os::raw::c_int,
3330        j: *mut ::std::os::raw::c_int,
3331        v: *mut f64,
3332        istat: *mut ::std::os::raw::c_int,
3333    );
3334}
3335extern "C" {
3336    pub fn BLAS_cusget_element(
3337        A: blas_sparse_matrix,
3338        i: ::std::os::raw::c_int,
3339        j: ::std::os::raw::c_int,
3340        v: *mut ::std::os::raw::c_void,
3341    ) -> ::std::os::raw::c_int;
3342}
3343extern "C" {
3344    pub fn blas_cusget_element_(
3345        A: *mut blas_sparse_matrix,
3346        i: *mut ::std::os::raw::c_int,
3347        j: *mut ::std::os::raw::c_int,
3348        v: *mut ::std::os::raw::c_void,
3349        istat: *mut ::std::os::raw::c_int,
3350    );
3351}
3352extern "C" {
3353    pub fn BLAS_zusget_element(
3354        A: blas_sparse_matrix,
3355        i: ::std::os::raw::c_int,
3356        j: ::std::os::raw::c_int,
3357        v: *mut ::std::os::raw::c_void,
3358    ) -> ::std::os::raw::c_int;
3359}
3360extern "C" {
3361    pub fn blas_zusget_element_(
3362        A: *mut blas_sparse_matrix,
3363        i: *mut ::std::os::raw::c_int,
3364        j: *mut ::std::os::raw::c_int,
3365        v: *mut ::std::os::raw::c_void,
3366        istat: *mut ::std::os::raw::c_int,
3367    );
3368}
3369extern "C" {
3370    pub fn rsb_wp__BLAS_ussp(
3371        A: blas_sparse_matrix,
3372        pname: ::std::os::raw::c_int,
3373    ) -> ::std::os::raw::c_int;
3374}
3375extern "C" {
3376    pub fn rsb_wp__BLAS_usgp(
3377        A: blas_sparse_matrix,
3378        pname: ::std::os::raw::c_int,
3379    ) -> ::std::os::raw::c_int;
3380}
3381extern "C" {
3382    pub fn rsb_load_spblas_matrix_file_as_matrix_market(
3383        filename: *const rsb_char_t,
3384        typecode: rsb_type_t,
3385    ) -> blas_sparse_matrix;
3386}
3387extern "C" {
3388    pub fn rsb_blas_get_mtx(A: blas_sparse_matrix) -> *mut rsb_mtx_t;
3389}