diff --git a/Cargo.toml b/Cargo.toml index 964716d..197e13b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [workspace] members = [ "cublas-sys", + "cusolver-sys", "cuda-config", "cuda-driver-sys", "cuda-runtime-sys", diff --git a/cusolver-sys/Cargo.toml b/cusolver-sys/Cargo.toml new file mode 100644 index 0000000..0c6fb62 --- /dev/null +++ b/cusolver-sys/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "cusolver-sys" +version = "0.3.0-alpha.0" +authors = ["Toshiki Teramura "] +edition = "2018" + +build = "build.rs" +links = "cusolver" + +description = "Rust binding to CUDA solver API" +documentation = "https://docs.rs/cusolver-sys/" +repository = "https://github.com/rust-cuda/cuda-sys" +keywords = ["GPGPU", "CUDA", "ffi"] +license = "MIT/Apache-2.0" +readme = "../README.md" +categories = [] + +[build-dependencies.cuda-config] +path = "../cuda-config" +version = "0.1.0" diff --git a/cusolver-sys/bindgen.sh b/cusolver-sys/bindgen.sh new file mode 100644 index 0000000..b550ab1 --- /dev/null +++ b/cusolver-sys/bindgen.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -exu + +bindgen \ + --whitelist-type="^cusolver.*" \ + --whitelist-function="^cusolver.*" \ + --default-enum-style=rust \ + --no-doc-comments \ + --with-derive-default \ + --with-derive-eq \ + --with-derive-hash \ + --with-derive-ord \ + cusolver_wrapper.h \ + -- -I/opt/cuda/include \ + > src/cusolver.rs diff --git a/cusolver-sys/build.rs b/cusolver-sys/build.rs new file mode 100644 index 0000000..63db448 --- /dev/null +++ b/cusolver-sys/build.rs @@ -0,0 +1,18 @@ +use cuda_config::*; + +fn main() { + if cfg!(target_os = "windows") { + println!( + "cargo:rustc-link-search=native={}", + find_cuda_windows().display() + ); + } else { + for path in find_cuda() { + println!("cargo:rustc-link-search=native={}", path.display()); + } + }; + + println!("cargo:rustc-link-lib=dylib=cusolver"); + println!("cargo:rerun-if-changed=build.rs"); + println!("cargo:rerun-if-env-changed=CUDA_LIBRARY_PATH"); +} diff --git a/cusolver-sys/cusolver_wrapper.h b/cusolver-sys/cusolver_wrapper.h new file mode 100644 index 0000000..17c8528 --- /dev/null +++ b/cusolver-sys/cusolver_wrapper.h @@ -0,0 +1,4 @@ +#include "cusolverSp.h" +#include "cusolverMg.h" +#include "cusolverDn.h" +#include "cusolverRf.h" diff --git a/cusolver-sys/src/cusolver.rs b/cusolver-sys/src/cusolver.rs new file mode 100644 index 0000000..7f2c452 --- /dev/null +++ b/cusolver-sys/src/cusolver.rs @@ -0,0 +1,7217 @@ +/* automatically generated by rust-bindgen 0.55.1 */ + +pub type size_t = ::std::os::raw::c_ulonglong; +#[repr(C)] +#[repr(align(8))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct float2 { + pub x: f32, + pub y: f32, +} +#[test] +fn bindgen_test_layout_float2() { + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(float2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(float2)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(x)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).y as *const _ as usize }, + 4usize, + concat!("Offset of field: ", stringify!(float2), "::", stringify!(y)) + ); +} +#[repr(C)] +#[repr(align(16))] +#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] +pub struct double2 { + pub x: f64, + pub y: f64, +} +#[test] +fn bindgen_test_layout_double2() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(double2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 16usize, + concat!("Alignment of ", stringify!(double2)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).y as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(double2), + "::", + stringify!(y) + ) + ); +} +pub type cuFloatComplex = float2; +pub type cuDoubleComplex = double2; +pub type cuComplex = cuFloatComplex; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct CUstream_st { + _unused: [u8; 0], +} +pub type cudaStream_t = *mut CUstream_st; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cudaDataType_t { + CUDA_R_16F = 2, + CUDA_C_16F = 6, + CUDA_R_16BF = 14, + CUDA_C_16BF = 15, + CUDA_R_32F = 0, + CUDA_C_32F = 4, + CUDA_R_64F = 1, + CUDA_C_64F = 5, + CUDA_R_4I = 16, + CUDA_C_4I = 17, + CUDA_R_4U = 18, + CUDA_C_4U = 19, + CUDA_R_8I = 3, + CUDA_C_8I = 7, + CUDA_R_8U = 8, + CUDA_C_8U = 9, + CUDA_R_16I = 20, + CUDA_C_16I = 21, + CUDA_R_16U = 22, + CUDA_C_16U = 23, + CUDA_R_32I = 10, + CUDA_C_32I = 11, + CUDA_R_32U = 12, + CUDA_C_32U = 13, + CUDA_R_64I = 24, + CUDA_C_64I = 25, + CUDA_R_64U = 26, + CUDA_C_64U = 27, +} +pub use self::cudaDataType_t as cudaDataType; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum libraryPropertyType_t { + MAJOR_VERSION = 0, + MINOR_VERSION = 1, + PATCH_LEVEL = 2, +} +pub use self::libraryPropertyType_t as libraryPropertyType; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusparseMatDescr { + _unused: [u8; 0], +} +pub type cusparseMatDescr_t = *mut cusparseMatDescr; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cublasFillMode_t { + CUBLAS_FILL_MODE_LOWER = 0, + CUBLAS_FILL_MODE_UPPER = 1, + CUBLAS_FILL_MODE_FULL = 2, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cublasDiagType_t { + CUBLAS_DIAG_NON_UNIT = 0, + CUBLAS_DIAG_UNIT = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cublasSideMode_t { + CUBLAS_SIDE_LEFT = 0, + CUBLAS_SIDE_RIGHT = 1, +} +impl cublasOperation_t { + pub const CUBLAS_OP_HERMITAN: cublasOperation_t = cublasOperation_t::CUBLAS_OP_C; +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cublasOperation_t { + CUBLAS_OP_N = 0, + CUBLAS_OP_T = 1, + CUBLAS_OP_C = 2, + CUBLAS_OP_CONJG = 3, +} +pub type cusolver_int_t = ::std::os::raw::c_int; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverStatus_t { + CUSOLVER_STATUS_SUCCESS = 0, + CUSOLVER_STATUS_NOT_INITIALIZED = 1, + CUSOLVER_STATUS_ALLOC_FAILED = 2, + CUSOLVER_STATUS_INVALID_VALUE = 3, + CUSOLVER_STATUS_ARCH_MISMATCH = 4, + CUSOLVER_STATUS_MAPPING_ERROR = 5, + CUSOLVER_STATUS_EXECUTION_FAILED = 6, + CUSOLVER_STATUS_INTERNAL_ERROR = 7, + CUSOLVER_STATUS_MATRIX_TYPE_NOT_SUPPORTED = 8, + CUSOLVER_STATUS_NOT_SUPPORTED = 9, + CUSOLVER_STATUS_ZERO_PIVOT = 10, + CUSOLVER_STATUS_INVALID_LICENSE = 11, + CUSOLVER_STATUS_IRS_PARAMS_NOT_INITIALIZED = 12, + CUSOLVER_STATUS_IRS_PARAMS_INVALID = 13, + CUSOLVER_STATUS_IRS_PARAMS_INVALID_PREC = 14, + CUSOLVER_STATUS_IRS_PARAMS_INVALID_REFINE = 15, + CUSOLVER_STATUS_IRS_PARAMS_INVALID_MAXITER = 16, + CUSOLVER_STATUS_IRS_INTERNAL_ERROR = 20, + CUSOLVER_STATUS_IRS_NOT_SUPPORTED = 21, + CUSOLVER_STATUS_IRS_OUT_OF_RANGE = 22, + CUSOLVER_STATUS_IRS_NRHS_NOT_SUPPORTED_FOR_REFINE_GMRES = 23, + CUSOLVER_STATUS_IRS_INFOS_NOT_INITIALIZED = 25, + CUSOLVER_STATUS_IRS_INFOS_NOT_DESTROYED = 26, + CUSOLVER_STATUS_IRS_MATRIX_SINGULAR = 30, + CUSOLVER_STATUS_INVALID_WORKSPACE = 31, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverEigType_t { + CUSOLVER_EIG_TYPE_1 = 1, + CUSOLVER_EIG_TYPE_2 = 2, + CUSOLVER_EIG_TYPE_3 = 3, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverEigMode_t { + CUSOLVER_EIG_MODE_NOVECTOR = 0, + CUSOLVER_EIG_MODE_VECTOR = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverEigRange_t { + CUSOLVER_EIG_RANGE_ALL = 1001, + CUSOLVER_EIG_RANGE_I = 1002, + CUSOLVER_EIG_RANGE_V = 1003, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverNorm_t { + CUSOLVER_INF_NORM = 104, + CUSOLVER_MAX_NORM = 105, + CUSOLVER_ONE_NORM = 106, + CUSOLVER_FRO_NORM = 107, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverIRSRefinement_t { + CUSOLVER_IRS_REFINE_NOT_SET = 1100, + CUSOLVER_IRS_REFINE_NONE = 1101, + CUSOLVER_IRS_REFINE_CLASSICAL = 1102, + CUSOLVER_IRS_REFINE_CLASSICAL_GMRES = 1103, + CUSOLVER_IRS_REFINE_GMRES = 1104, + CUSOLVER_IRS_REFINE_GMRES_GMRES = 1105, + CUSOLVER_IRS_REFINE_GMRES_NOPCOND = 1106, + CUSOLVER_PREC_DD = 1150, + CUSOLVER_PREC_SS = 1151, + CUSOLVER_PREC_SHT = 1152, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverPrecType_t { + CUSOLVER_R_8I = 1201, + CUSOLVER_R_8U = 1202, + CUSOLVER_R_64F = 1203, + CUSOLVER_R_32F = 1204, + CUSOLVER_R_16F = 1205, + CUSOLVER_R_16BF = 1206, + CUSOLVER_R_TF32 = 1207, + CUSOLVER_R_AP = 1208, + CUSOLVER_C_8I = 1211, + CUSOLVER_C_8U = 1212, + CUSOLVER_C_64F = 1213, + CUSOLVER_C_32F = 1214, + CUSOLVER_C_16F = 1215, + CUSOLVER_C_16BF = 1216, + CUSOLVER_C_TF32 = 1217, + CUSOLVER_C_AP = 1218, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverAlgMode_t { + CUSOLVER_ALG_0 = 0, + CUSOLVER_ALG_1 = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverStorevMode_t { + CUBLAS_STOREV_COLUMNWISE = 0, + CUBLAS_STOREV_ROWWISE = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverDirectMode_t { + CUBLAS_DIRECT_FORWARD = 0, + CUBLAS_DIRECT_BACKWARD = 1, +} +extern "C" { + pub fn cusolverGetProperty( + type_: libraryPropertyType, + value: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverGetVersion(version: *mut ::std::os::raw::c_int) -> cusolverStatus_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverSpContext { + _unused: [u8; 0], +} +pub type cusolverSpHandle_t = *mut cusolverSpContext; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct csrqrInfo { + _unused: [u8; 0], +} +pub type csrqrInfo_t = *mut csrqrInfo; +extern "C" { + pub fn cusolverSpCreate(handle: *mut cusolverSpHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDestroy(handle: cusolverSpHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpSetStream( + handle: cusolverSpHandle_t, + streamId: cudaStream_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpGetStream( + handle: cusolverSpHandle_t, + streamId: *mut cudaStream_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrissymHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrEndPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + issym: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsvluHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut f32, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsvluHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut f64, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsvluHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut cuComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsvluHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsvqr( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f32, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut f32, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsvqr( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f64, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut f64, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsvqr( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut cuComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsvqr( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuDoubleComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut f32, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut f64, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut cuComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsvcholHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f32, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut f32, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsvcholHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f64, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut f64, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsvcholHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut cuComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsvcholHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuDoubleComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsvchol( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f32, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut f32, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsvchol( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f64, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut f64, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsvchol( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + reorder: ::std::os::raw::c_int, + x: *mut cuComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsvchol( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuDoubleComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + reorder: ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + singularity: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrlsqvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f32, + tol: f32, + rankA: *mut ::std::os::raw::c_int, + x: *mut f32, + p: *mut ::std::os::raw::c_int, + min_norm: *mut f32, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrlsqvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f64, + tol: f64, + rankA: *mut ::std::os::raw::c_int, + x: *mut f64, + p: *mut ::std::os::raw::c_int, + min_norm: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrlsqvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuComplex, + tol: f32, + rankA: *mut ::std::os::raw::c_int, + x: *mut cuComplex, + p: *mut ::std::os::raw::c_int, + min_norm: *mut f32, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrlsqvqrHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + tol: f64, + rankA: *mut ::std::os::raw::c_int, + x: *mut cuDoubleComplex, + p: *mut ::std::os::raw::c_int, + min_norm: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsreigvsiHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: f32, + x0: *const f32, + maxite: ::std::os::raw::c_int, + tol: f32, + mu: *mut f32, + x: *mut f32, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsreigvsiHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: f64, + x0: *const f64, + maxite: ::std::os::raw::c_int, + tol: f64, + mu: *mut f64, + x: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsreigvsiHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: cuComplex, + x0: *const cuComplex, + maxite: ::std::os::raw::c_int, + tol: f32, + mu: *mut cuComplex, + x: *mut cuComplex, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsreigvsiHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: cuDoubleComplex, + x0: *const cuDoubleComplex, + maxite: ::std::os::raw::c_int, + tol: f64, + mu: *mut cuDoubleComplex, + x: *mut cuDoubleComplex, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsreigvsi( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: f32, + x0: *const f32, + maxite: ::std::os::raw::c_int, + eps: f32, + mu: *mut f32, + x: *mut f32, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsreigvsi( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: f64, + x0: *const f64, + maxite: ::std::os::raw::c_int, + eps: f64, + mu: *mut f64, + x: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsreigvsi( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: cuComplex, + x0: *const cuComplex, + maxite: ::std::os::raw::c_int, + eps: f32, + mu: *mut cuComplex, + x: *mut cuComplex, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsreigvsi( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + mu0: cuDoubleComplex, + x0: *const cuDoubleComplex, + maxite: ::std::os::raw::c_int, + eps: f64, + mu: *mut cuDoubleComplex, + x: *mut cuDoubleComplex, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsreigsHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + left_bottom_corner: cuComplex, + right_upper_corner: cuComplex, + num_eigs: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsreigsHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + left_bottom_corner: cuDoubleComplex, + right_upper_corner: cuDoubleComplex, + num_eigs: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsreigsHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + left_bottom_corner: cuComplex, + right_upper_corner: cuComplex, + num_eigs: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsreigsHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + left_bottom_corner: cuDoubleComplex, + right_upper_corner: cuDoubleComplex, + num_eigs: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrsymrcmHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + p: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrsymmdqHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + p: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrsymamdHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + p: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrmetisndHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + options: *const i64, + p: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrzfdHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + P: *mut ::std::os::raw::c_int, + numnz: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrzfdHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + P: *mut ::std::os::raw::c_int, + numnz: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrzfdHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + P: *mut ::std::os::raw::c_int, + numnz: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrzfdHost( + handle: cusolverSpHandle_t, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + P: *mut ::std::os::raw::c_int, + numnz: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrperm_bufferSizeHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + p: *const ::std::os::raw::c_int, + q: *const ::std::os::raw::c_int, + bufferSizeInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrpermHost( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *mut ::std::os::raw::c_int, + csrColIndA: *mut ::std::os::raw::c_int, + p: *const ::std::os::raw::c_int, + q: *const ::std::os::raw::c_int, + map: *mut ::std::os::raw::c_int, + pBuffer: *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCreateCsrqrInfo(info: *mut csrqrInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDestroyCsrqrInfo(info: csrqrInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpXcsrqrAnalysisBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + info: csrqrInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrqrBufferInfoBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f32, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + internalDataInBytes: *mut size_t, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrqrBufferInfoBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const f64, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + internalDataInBytes: *mut size_t, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrqrBufferInfoBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + internalDataInBytes: *mut size_t, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrqrBufferInfoBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrVal: *const cuDoubleComplex, + csrRowPtr: *const ::std::os::raw::c_int, + csrColInd: *const ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + internalDataInBytes: *mut size_t, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpScsrqrsvBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f32, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f32, + x: *mut f32, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + pBuffer: *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpDcsrqrsvBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const f64, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const f64, + x: *mut f64, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + pBuffer: *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpCcsrqrsvBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuComplex, + x: *mut cuComplex, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + pBuffer: *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverSpZcsrqrsvBatched( + handle: cusolverSpHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnz: ::std::os::raw::c_int, + descrA: cusparseMatDescr_t, + csrValA: *const cuDoubleComplex, + csrRowPtrA: *const ::std::os::raw::c_int, + csrColIndA: *const ::std::os::raw::c_int, + b: *const cuDoubleComplex, + x: *mut cuDoubleComplex, + batchSize: ::std::os::raw::c_int, + info: csrqrInfo_t, + pBuffer: *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverDnContext { + _unused: [u8; 0], +} +pub type cusolverDnHandle_t = *mut cusolverDnContext; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct syevjInfo { + _unused: [u8; 0], +} +pub type syevjInfo_t = *mut syevjInfo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct gesvdjInfo { + _unused: [u8; 0], +} +pub type gesvdjInfo_t = *mut gesvdjInfo; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverDnIRSParams { + _unused: [u8; 0], +} +pub type cusolverDnIRSParams_t = *mut cusolverDnIRSParams; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverDnIRSInfos { + _unused: [u8; 0], +} +pub type cusolverDnIRSInfos_t = *mut cusolverDnIRSInfos; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverDnParams { + _unused: [u8; 0], +} +pub type cusolverDnParams_t = *mut cusolverDnParams; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverDnFunction_t { + CUSOLVERDN_GETRF = 0, +} +extern "C" { + pub fn cusolverDnCreate(handle: *mut cusolverDnHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDestroy(handle: cusolverDnHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSetStream( + handle: cusolverDnHandle_t, + streamId: cudaStream_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGetStream( + handle: cusolverDnHandle_t, + streamId: *mut cudaStream_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsCreate(params_ptr: *mut cusolverDnIRSParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsDestroy(params: cusolverDnIRSParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetRefinementSolver( + params: cusolverDnIRSParams_t, + refinement_solver: cusolverIRSRefinement_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetSolverMainPrecision( + params: cusolverDnIRSParams_t, + solver_main_precision: cusolverPrecType_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetSolverLowestPrecision( + params: cusolverDnIRSParams_t, + solver_lowest_precision: cusolverPrecType_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetSolverPrecisions( + params: cusolverDnIRSParams_t, + solver_main_precision: cusolverPrecType_t, + solver_lowest_precision: cusolverPrecType_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetTol(params: cusolverDnIRSParams_t, val: f64) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetTolInner( + params: cusolverDnIRSParams_t, + val: f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetMaxIters( + params: cusolverDnIRSParams_t, + maxiters: cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsSetMaxItersInner( + params: cusolverDnIRSParams_t, + maxiters_inner: cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsGetMaxIters( + params: cusolverDnIRSParams_t, + maxiters: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsEnableFallback(params: cusolverDnIRSParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSParamsDisableFallback(params: cusolverDnIRSParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosDestroy(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosCreate(infos_ptr: *mut cusolverDnIRSInfos_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosGetNiters( + infos: cusolverDnIRSInfos_t, + niters: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosGetOuterNiters( + infos: cusolverDnIRSInfos_t, + outer_niters: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosRequestResidual(infos: cusolverDnIRSInfos_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosGetResidualHistory( + infos: cusolverDnIRSInfos_t, + residual_history: *mut *mut ::std::os::raw::c_void, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSInfosGetMaxIters( + infos: cusolverDnIRSInfos_t, + maxiters: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZZgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZCgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZKgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZEgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZYgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCCgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCEgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCKgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCYgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDDgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDSgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDHgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDBgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDXgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSSgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSHgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSBgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSXgesv( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZZgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZCgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZKgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZEgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZYgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCCgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCKgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCEgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCYgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDDgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDSgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDHgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDBgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDXgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSSgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSHgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSBgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSXgesv_bufferSize( + handle: cusolverDnHandle_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dipiv: *mut cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZZgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZCgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZKgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZEgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZYgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCCgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCKgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCEgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCYgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDDgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDSgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDHgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDBgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDXgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSSgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSHgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSBgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSXgels( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + iter: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZZgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZCgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZKgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZEgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZYgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuDoubleComplex, + ldda: cusolver_int_t, + dB: *mut cuDoubleComplex, + lddb: cusolver_int_t, + dX: *mut cuDoubleComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCCgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCKgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCEgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCYgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut cuComplex, + ldda: cusolver_int_t, + dB: *mut cuComplex, + lddb: cusolver_int_t, + dX: *mut cuComplex, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDDgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDSgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDHgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDBgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDXgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f64, + ldda: cusolver_int_t, + dB: *mut f64, + lddb: cusolver_int_t, + dX: *mut f64, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSSgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSHgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSBgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSXgels_bufferSize( + handle: cusolverDnHandle_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut f32, + ldda: cusolver_int_t, + dB: *mut f32, + lddb: cusolver_int_t, + dX: *mut f32, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSXgesv( + handle: cusolverDnHandle_t, + gesv_irs_params: cusolverDnIRSParams_t, + gesv_irs_infos: cusolverDnIRSInfos_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut ::std::os::raw::c_void, + ldda: cusolver_int_t, + dB: *mut ::std::os::raw::c_void, + lddb: cusolver_int_t, + dX: *mut ::std::os::raw::c_void, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + niters: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSXgesv_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnIRSParams_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSXgels( + handle: cusolverDnHandle_t, + gels_irs_params: cusolverDnIRSParams_t, + gels_irs_infos: cusolverDnIRSInfos_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + dA: *mut ::std::os::raw::c_void, + ldda: cusolver_int_t, + dB: *mut ::std::os::raw::c_void, + lddb: cusolver_int_t, + dX: *mut ::std::os::raw::c_void, + lddx: cusolver_int_t, + dWorkspace: *mut ::std::os::raw::c_void, + lwork_bytes: size_t, + niters: *mut cusolver_int_t, + d_info: *mut cusolver_int_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnIRSXgels_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnIRSParams_t, + m: cusolver_int_t, + n: cusolver_int_t, + nrhs: cusolver_int_t, + lwork_bytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotrf_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotrf_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotrf_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotrf_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + Workspace: *mut f32, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + Workspace: *mut f64, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + Workspace: *mut cuComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + Workspace: *mut cuDoubleComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotrfBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + Aarray: *mut *mut f32, + lda: ::std::os::raw::c_int, + infoArray: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotrfBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + Aarray: *mut *mut f64, + lda: ::std::os::raw::c_int, + infoArray: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotrfBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + Aarray: *mut *mut cuComplex, + lda: ::std::os::raw::c_int, + infoArray: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotrfBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + Aarray: *mut *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + infoArray: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotrsBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *mut *mut f32, + lda: ::std::os::raw::c_int, + B: *mut *mut f32, + ldb: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotrsBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *mut *mut f64, + lda: ::std::os::raw::c_int, + B: *mut *mut f64, + ldb: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotrsBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *mut *mut cuComplex, + lda: ::std::os::raw::c_int, + B: *mut *mut cuComplex, + ldb: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotrsBatched( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *mut *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *mut *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSpotri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDpotri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCpotri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZpotri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnStrtri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDtrtri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCtrtri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZtrtri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnStrtri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDtrtri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCtrtri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZtrtri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + diag: cublasDiagType_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSlauum_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDlauum_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnClauum_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZlauum_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSlauum( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDlauum( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnClauum( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZlauum( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgetrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgetrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgetrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgetrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgetrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + Workspace: *mut f32, + devIpiv: *mut ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgetrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + Workspace: *mut f64, + devIpiv: *mut ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgetrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + Workspace: *mut cuComplex, + devIpiv: *mut ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgetrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + Workspace: *mut cuDoubleComplex, + devIpiv: *mut ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSlaswp( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + k1: ::std::os::raw::c_int, + k2: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + incx: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDlaswp( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + k1: ::std::os::raw::c_int, + k2: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + incx: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnClaswp( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + k1: ::std::os::raw::c_int, + k2: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + incx: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZlaswp( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + k1: ::std::os::raw::c_int, + k2: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + incx: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgetrs( + handle: cusolverDnHandle_t, + trans: cublasOperation_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgetrs( + handle: cusolverDnHandle_t, + trans: cublasOperation_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgetrs( + handle: cusolverDnHandle_t, + trans: cublasOperation_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgetrs( + handle: cusolverDnHandle_t, + trans: cublasOperation_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + devIpiv: *const ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgeqrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgeqrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgeqrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgeqrf_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgeqrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + TAU: *mut f32, + Workspace: *mut f32, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgeqrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + TAU: *mut f64, + Workspace: *mut f64, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgeqrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + TAU: *mut cuComplex, + Workspace: *mut cuComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgeqrf( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + TAU: *mut cuDoubleComplex, + Workspace: *mut cuDoubleComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgqr_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgqr_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungqr_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungqr_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgqr( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgqr( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungqr( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungqr( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSormqr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + C: *const f32, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDormqr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + C: *const f64, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCunmqr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + C: *const cuComplex, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZunmqr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + C: *const cuDoubleComplex, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSormqr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + C: *mut f32, + ldc: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDormqr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + C: *mut f64, + ldc: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCunmqr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + C: *mut cuComplex, + ldc: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZunmqr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrf_bufferSize( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrf_bufferSize( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytrf_bufferSize( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytrf_bufferSize( + handle: cusolverDnHandle_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + ipiv: *mut ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + ipiv: *mut ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + ipiv: *mut ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytrf( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + ipiv: *mut ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrs_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrs_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytrs_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytrs_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytrs( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytri_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCsytri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZsytri( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + ipiv: *const ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgebrd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgebrd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgebrd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgebrd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + Lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgebrd( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + D: *mut f32, + E: *mut f32, + TAUQ: *mut f32, + TAUP: *mut f32, + Work: *mut f32, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgebrd( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + D: *mut f64, + E: *mut f64, + TAUQ: *mut f64, + TAUP: *mut f64, + Work: *mut f64, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgebrd( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + D: *mut f32, + E: *mut f32, + TAUQ: *mut cuComplex, + TAUP: *mut cuComplex, + Work: *mut cuComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgebrd( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + D: *mut f64, + E: *mut f64, + TAUQ: *mut cuDoubleComplex, + TAUP: *mut cuDoubleComplex, + Work: *mut cuDoubleComplex, + Lwork: ::std::os::raw::c_int, + devInfo: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgbr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgbr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungbr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungbr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgbr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgbr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungbr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungbr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + k: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrd_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + d: *const f32, + e: *const f32, + tau: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrd_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + d: *const f64, + e: *const f64, + tau: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChetrd_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + d: *const f32, + e: *const f32, + tau: *const cuComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhetrd_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + d: *const f64, + e: *const f64, + tau: *const cuDoubleComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsytrd( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + d: *mut f32, + e: *mut f32, + tau: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsytrd( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + d: *mut f64, + e: *mut f64, + tau: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChetrd( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + d: *mut f32, + e: *mut f32, + tau: *mut cuComplex, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhetrd( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + d: *mut f64, + e: *mut f64, + tau: *mut cuDoubleComplex, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgtr_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgtr_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungtr_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungtr_bufferSize( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSorgtr( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDorgtr( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCungtr( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZungtr( + handle: cusolverDnHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSormtr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + tau: *const f32, + C: *const f32, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDormtr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + tau: *const f64, + C: *const f64, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCunmtr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + tau: *const cuComplex, + C: *const cuComplex, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZunmtr_bufferSize( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *const cuDoubleComplex, + C: *const cuDoubleComplex, + ldc: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSormtr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + tau: *mut f32, + C: *mut f32, + ldc: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDormtr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + tau: *mut f64, + C: *mut f64, + ldc: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCunmtr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + tau: *mut cuComplex, + C: *mut cuComplex, + ldc: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZunmtr( + handle: cusolverDnHandle_t, + side: cublasSideMode_t, + uplo: cublasFillMode_t, + trans: cublasOperation_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + tau: *mut cuDoubleComplex, + C: *mut cuDoubleComplex, + ldc: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvd_bufferSize( + handle: cusolverDnHandle_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvd( + handle: cusolverDnHandle_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut f32, + ldu: ::std::os::raw::c_int, + VT: *mut f32, + ldvt: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + rwork: *mut f32, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvd( + handle: cusolverDnHandle_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut f64, + ldu: ::std::os::raw::c_int, + VT: *mut f64, + ldvt: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + rwork: *mut f64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvd( + handle: cusolverDnHandle_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut cuComplex, + ldu: ::std::os::raw::c_int, + VT: *mut cuComplex, + ldvt: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + rwork: *mut f32, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvd( + handle: cusolverDnHandle_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut cuDoubleComplex, + ldu: ::std::os::raw::c_int, + VT: *mut cuDoubleComplex, + ldvt: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + rwork: *mut f64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevd_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevd_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevd_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevd_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevd( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevd( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevd( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevd( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevdx_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevdx_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevdx_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevdx_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevdx( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevdx( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevdx( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevdx( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvdx_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + B: *const f32, + ldb: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvdx_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + B: *const f64, + ldb: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvdx_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + B: *const cuComplex, + ldb: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvdx_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *const cuDoubleComplex, + ldb: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvdx( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvdx( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvdx( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + vl: f32, + vu: f32, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvdx( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + vl: f64, + vu: f64, + il: ::std::os::raw::c_int, + iu: ::std::os::raw::c_int, + meig: *mut ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvd_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + B: *const f32, + ldb: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvd_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + B: *const f64, + ldb: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvd_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + B: *const cuComplex, + ldb: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvd_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *const cuDoubleComplex, + ldb: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvd( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvd( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvd( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvd( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCreateSyevjInfo(info: *mut syevjInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDestroySyevjInfo(info: syevjInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevjSetTolerance(info: syevjInfo_t, tolerance: f64) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevjSetMaxSweeps( + info: syevjInfo_t, + max_sweeps: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevjSetSortEig( + info: syevjInfo_t, + sort_eig: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevjGetResidual( + handle: cusolverDnHandle_t, + info: syevjInfo_t, + residual: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevjGetSweeps( + handle: cusolverDnHandle_t, + info: syevjInfo_t, + executed_sweeps: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsyevj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsyevj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCheevj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZheevj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvj_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + B: *const f32, + ldb: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvj_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + B: *const f64, + ldb: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvj_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + B: *const cuComplex, + ldb: ::std::os::raw::c_int, + W: *const f32, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvj_bufferSize( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *const cuDoubleComplex, + ldb: ::std::os::raw::c_int, + W: *const f64, + lwork: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSsygvj( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + B: *mut f32, + ldb: ::std::os::raw::c_int, + W: *mut f32, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDsygvj( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + B: *mut f64, + ldb: ::std::os::raw::c_int, + W: *mut f64, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnChegvj( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + B: *mut cuComplex, + ldb: ::std::os::raw::c_int, + W: *mut f32, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZhegvj( + handle: cusolverDnHandle_t, + itype: cusolverEigType_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + B: *mut cuDoubleComplex, + ldb: ::std::os::raw::c_int, + W: *mut f64, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: syevjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCreateGesvdjInfo(info: *mut gesvdjInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDestroyGesvdjInfo(info: gesvdjInfo_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdjSetTolerance(info: gesvdjInfo_t, tolerance: f64) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdjSetMaxSweeps( + info: gesvdjInfo_t, + max_sweeps: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdjSetSortEig( + info: gesvdjInfo_t, + sort_svd: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdjGetResidual( + handle: cusolverDnHandle_t, + info: gesvdjInfo_t, + residual: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdjGetSweeps( + handle: cusolverDnHandle_t, + info: gesvdjInfo_t, + executed_sweeps: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + S: *const f32, + U: *const f32, + ldu: ::std::os::raw::c_int, + V: *const f32, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + S: *const f64, + U: *const f64, + ldu: ::std::os::raw::c_int, + V: *const f64, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + S: *const f32, + U: *const cuComplex, + ldu: ::std::os::raw::c_int, + V: *const cuComplex, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdjBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + S: *const f64, + U: *const cuDoubleComplex, + ldu: ::std::os::raw::c_int, + V: *const cuDoubleComplex, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut f32, + ldu: ::std::os::raw::c_int, + V: *mut f32, + ldv: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut f64, + ldu: ::std::os::raw::c_int, + V: *mut f64, + ldv: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut cuComplex, + ldu: ::std::os::raw::c_int, + V: *mut cuComplex, + ldv: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdjBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut cuDoubleComplex, + ldu: ::std::os::raw::c_int, + V: *mut cuDoubleComplex, + ldv: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f32, + lda: ::std::os::raw::c_int, + S: *const f32, + U: *const f32, + ldu: ::std::os::raw::c_int, + V: *const f32, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const f64, + lda: ::std::os::raw::c_int, + S: *const f64, + U: *const f64, + ldu: ::std::os::raw::c_int, + V: *const f64, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuComplex, + lda: ::std::os::raw::c_int, + S: *const f32, + U: *const cuComplex, + ldu: ::std::os::raw::c_int, + V: *const cuComplex, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdj_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + S: *const f64, + U: *const cuDoubleComplex, + ldu: ::std::os::raw::c_int, + V: *const cuDoubleComplex, + ldv: ::std::os::raw::c_int, + lwork: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f32, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut f32, + ldu: ::std::os::raw::c_int, + V: *mut f32, + ldv: ::std::os::raw::c_int, + work: *mut f32, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut f64, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut f64, + ldu: ::std::os::raw::c_int, + V: *mut f64, + ldv: ::std::os::raw::c_int, + work: *mut f64, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuComplex, + lda: ::std::os::raw::c_int, + S: *mut f32, + U: *mut cuComplex, + ldu: ::std::os::raw::c_int, + V: *mut cuComplex, + ldv: ::std::os::raw::c_int, + work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdj( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + A: *mut cuDoubleComplex, + lda: ::std::os::raw::c_int, + S: *mut f64, + U: *mut cuDoubleComplex, + ldu: ::std::os::raw::c_int, + V: *mut cuDoubleComplex, + ldv: ::std::os::raw::c_int, + work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + info: *mut ::std::os::raw::c_int, + params: gesvdjInfo_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdaStridedBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const f32, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *const f32, + strideS: ::std::os::raw::c_longlong, + d_U: *const f32, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *const f32, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + lwork: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdaStridedBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const f64, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *const f64, + strideS: ::std::os::raw::c_longlong, + d_U: *const f64, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *const f64, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + lwork: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdaStridedBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const cuComplex, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *const f32, + strideS: ::std::os::raw::c_longlong, + d_U: *const cuComplex, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *const cuComplex, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + lwork: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdaStridedBatched_bufferSize( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *const f64, + strideS: ::std::os::raw::c_longlong, + d_U: *const cuDoubleComplex, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *const cuDoubleComplex, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + lwork: *mut ::std::os::raw::c_int, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSgesvdaStridedBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const f32, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *mut f32, + strideS: ::std::os::raw::c_longlong, + d_U: *mut f32, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *mut f32, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + d_work: *mut f32, + lwork: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + h_R_nrmF: *mut f64, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDgesvdaStridedBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const f64, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *mut f64, + strideS: ::std::os::raw::c_longlong, + d_U: *mut f64, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *mut f64, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + d_work: *mut f64, + lwork: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + h_R_nrmF: *mut f64, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCgesvdaStridedBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const cuComplex, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *mut f32, + strideS: ::std::os::raw::c_longlong, + d_U: *mut cuComplex, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *mut cuComplex, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + d_work: *mut cuComplex, + lwork: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + h_R_nrmF: *mut f64, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnZgesvdaStridedBatched( + handle: cusolverDnHandle_t, + jobz: cusolverEigMode_t, + rank: ::std::os::raw::c_int, + m: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + d_A: *const cuDoubleComplex, + lda: ::std::os::raw::c_int, + strideA: ::std::os::raw::c_longlong, + d_S: *mut f64, + strideS: ::std::os::raw::c_longlong, + d_U: *mut cuDoubleComplex, + ldu: ::std::os::raw::c_int, + strideU: ::std::os::raw::c_longlong, + d_V: *mut cuDoubleComplex, + ldv: ::std::os::raw::c_int, + strideV: ::std::os::raw::c_longlong, + d_work: *mut cuDoubleComplex, + lwork: ::std::os::raw::c_int, + d_info: *mut ::std::os::raw::c_int, + h_R_nrmF: *mut f64, + batchSize: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnCreateParams(params: *mut cusolverDnParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnDestroyParams(params: cusolverDnParams_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSetAdvOptions( + params: cusolverDnParams_t, + function: cusolverDnFunction_t, + algo: cusolverAlgMode_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnPotrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnPotrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnPotrs( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + nrhs: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeB: cudaDataType, + B: *mut ::std::os::raw::c_void, + ldb: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGeqrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeTau: cudaDataType, + tau: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGeqrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeTau: cudaDataType, + tau: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGetrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGetrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + ipiv: *mut i64, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGetrs( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + trans: cublasOperation_t, + n: i64, + nrhs: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + ipiv: *const i64, + dataTypeB: cudaDataType, + B: *mut ::std::os::raw::c_void, + ldb: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSyevd_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeW: cudaDataType, + W: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSyevd( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeW: cudaDataType, + W: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSyevdx_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + vl: *mut ::std::os::raw::c_void, + vu: *mut ::std::os::raw::c_void, + il: i64, + iu: i64, + h_meig: *mut i64, + dataTypeW: cudaDataType, + W: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnSyevdx( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + vl: *mut ::std::os::raw::c_void, + vu: *mut ::std::os::raw::c_void, + il: i64, + iu: i64, + meig64: *mut i64, + dataTypeW: cudaDataType, + W: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGesvd_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *const ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *const ::std::os::raw::c_void, + ldu: i64, + dataTypeVT: cudaDataType, + VT: *const ::std::os::raw::c_void, + ldvt: i64, + computeType: cudaDataType, + workspaceInBytes: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnGesvd( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *mut ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *mut ::std::os::raw::c_void, + ldu: i64, + dataTypeVT: cudaDataType, + VT: *mut ::std::os::raw::c_void, + ldvt: i64, + computeType: cudaDataType, + pBuffer: *mut ::std::os::raw::c_void, + workspaceInBytes: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXpotrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXpotrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXpotrs( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + uplo: cublasFillMode_t, + n: i64, + nrhs: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeB: cudaDataType, + B: *mut ::std::os::raw::c_void, + ldb: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgeqrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeTau: cudaDataType, + tau: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgeqrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeTau: cudaDataType, + tau: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgetrf_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgetrf( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + ipiv: *mut i64, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgetrs( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + trans: cublasOperation_t, + n: i64, + nrhs: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + ipiv: *const i64, + dataTypeB: cudaDataType, + B: *mut ::std::os::raw::c_void, + ldb: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevd_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeW: cudaDataType, + W: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevd( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeW: cudaDataType, + W: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevdx_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + vl: *mut ::std::os::raw::c_void, + vu: *mut ::std::os::raw::c_void, + il: i64, + iu: i64, + h_meig: *mut i64, + dataTypeW: cudaDataType, + W: *const ::std::os::raw::c_void, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXsyevdx( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + range: cusolverEigRange_t, + uplo: cublasFillMode_t, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + vl: *mut ::std::os::raw::c_void, + vu: *mut ::std::os::raw::c_void, + il: i64, + iu: i64, + meig64: *mut i64, + dataTypeW: cudaDataType, + W: *mut ::std::os::raw::c_void, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvd_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *const ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *const ::std::os::raw::c_void, + ldu: i64, + dataTypeVT: cudaDataType, + VT: *const ::std::os::raw::c_void, + ldvt: i64, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvd( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobu: ::std::os::raw::c_schar, + jobvt: ::std::os::raw::c_schar, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *mut ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *mut ::std::os::raw::c_void, + ldu: i64, + dataTypeVT: cudaDataType, + VT: *mut ::std::os::raw::c_void, + ldvt: i64, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdp_bufferSize( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *const ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *const ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *const ::std::os::raw::c_void, + ldu: i64, + dataTypeV: cudaDataType, + V: *const ::std::os::raw::c_void, + ldv: i64, + computeType: cudaDataType, + workspaceInBytesOnDevice: *mut size_t, + workspaceInBytesOnHost: *mut size_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverDnXgesvdp( + handle: cusolverDnHandle_t, + params: cusolverDnParams_t, + jobz: cusolverEigMode_t, + econ: ::std::os::raw::c_int, + m: i64, + n: i64, + dataTypeA: cudaDataType, + A: *mut ::std::os::raw::c_void, + lda: i64, + dataTypeS: cudaDataType, + S: *mut ::std::os::raw::c_void, + dataTypeU: cudaDataType, + U: *mut ::std::os::raw::c_void, + ldu: i64, + dataTypeV: cudaDataType, + V: *mut ::std::os::raw::c_void, + ldv: i64, + computeType: cudaDataType, + bufferOnDevice: *mut ::std::os::raw::c_void, + workspaceInBytesOnDevice: size_t, + bufferOnHost: *mut ::std::os::raw::c_void, + workspaceInBytesOnHost: size_t, + d_info: *mut ::std::os::raw::c_int, + h_err_sigma: *mut f64, + ) -> cusolverStatus_t; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverMgContext { + _unused: [u8; 0], +} +pub type cusolverMgHandle_t = *mut cusolverMgContext; +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverMgGridMapping_t { + CUDALIBMG_GRID_MAPPING_ROW_MAJOR = 1, + CUDALIBMG_GRID_MAPPING_COL_MAJOR = 0, +} +pub type cudaLibMgGrid_t = *mut ::std::os::raw::c_void; +pub type cudaLibMgMatrixDesc_t = *mut ::std::os::raw::c_void; +extern "C" { + pub fn cusolverMgCreate(handle: *mut cusolverMgHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgDestroy(handle: cusolverMgHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgDeviceSelect( + handle: cusolverMgHandle_t, + nbDevices: ::std::os::raw::c_int, + deviceId: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgCreateDeviceGrid( + grid: *mut cudaLibMgGrid_t, + numRowDevices: i32, + numColDevices: i32, + deviceId: *const i32, + mapping: cusolverMgGridMapping_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgDestroyGrid(grid: cudaLibMgGrid_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgCreateMatrixDesc( + desc: *mut cudaLibMgMatrixDesc_t, + numRows: i64, + numCols: i64, + rowBlockSize: i64, + colBlockSize: i64, + dataType: cudaDataType, + grid: cudaLibMgGrid_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgDestroyMatrixDesc(desc: cudaLibMgMatrixDesc_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgSyevd_bufferSize( + handle: cusolverMgHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + W: *mut ::std::os::raw::c_void, + dataTypeW: cudaDataType, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgSyevd( + handle: cusolverMgHandle_t, + jobz: cusolverEigMode_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + W: *mut ::std::os::raw::c_void, + dataTypeW: cudaDataType, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgGetrf_bufferSize( + handle: cusolverMgHandle_t, + M: ::std::os::raw::c_int, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_IPIV: *mut *mut ::std::os::raw::c_int, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgGetrf( + handle: cusolverMgHandle_t, + M: ::std::os::raw::c_int, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_IPIV: *mut *mut ::std::os::raw::c_int, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgGetrs_bufferSize( + handle: cusolverMgHandle_t, + TRANS: cublasOperation_t, + N: ::std::os::raw::c_int, + NRHS: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_IPIV: *mut *mut ::std::os::raw::c_int, + array_d_B: *mut *mut ::std::os::raw::c_void, + IB: ::std::os::raw::c_int, + JB: ::std::os::raw::c_int, + descrB: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgGetrs( + handle: cusolverMgHandle_t, + TRANS: cublasOperation_t, + N: ::std::os::raw::c_int, + NRHS: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_IPIV: *mut *mut ::std::os::raw::c_int, + array_d_B: *mut *mut ::std::os::raw::c_void, + IB: ::std::os::raw::c_int, + JB: ::std::os::raw::c_int, + descrB: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotrf_bufferSize( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotrf( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + h_info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotrs_bufferSize( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_B: *mut *mut ::std::os::raw::c_void, + IB: ::std::os::raw::c_int, + JB: ::std::os::raw::c_int, + descrB: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotrs( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + n: ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + array_d_B: *mut *mut ::std::os::raw::c_void, + IB: ::std::os::raw::c_int, + JB: ::std::os::raw::c_int, + descrB: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + h_info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotri_bufferSize( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + lwork: *mut i64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverMgPotri( + handle: cusolverMgHandle_t, + uplo: cublasFillMode_t, + N: ::std::os::raw::c_int, + array_d_A: *mut *mut ::std::os::raw::c_void, + IA: ::std::os::raw::c_int, + JA: ::std::os::raw::c_int, + descrA: cudaLibMgMatrixDesc_t, + computeType: cudaDataType, + array_d_work: *mut *mut ::std::os::raw::c_void, + lwork: i64, + h_info: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfResetValuesFastMode_t { + CUSOLVERRF_RESET_VALUES_FAST_MODE_OFF = 0, + CUSOLVERRF_RESET_VALUES_FAST_MODE_ON = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfMatrixFormat_t { + CUSOLVERRF_MATRIX_FORMAT_CSR = 0, + CUSOLVERRF_MATRIX_FORMAT_CSC = 1, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfUnitDiagonal_t { + CUSOLVERRF_UNIT_DIAGONAL_STORED_L = 0, + CUSOLVERRF_UNIT_DIAGONAL_STORED_U = 1, + CUSOLVERRF_UNIT_DIAGONAL_ASSUMED_L = 2, + CUSOLVERRF_UNIT_DIAGONAL_ASSUMED_U = 3, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfFactorization_t { + CUSOLVERRF_FACTORIZATION_ALG0 = 0, + CUSOLVERRF_FACTORIZATION_ALG1 = 1, + CUSOLVERRF_FACTORIZATION_ALG2 = 2, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfTriangularSolve_t { + CUSOLVERRF_TRIANGULAR_SOLVE_ALG1 = 1, + CUSOLVERRF_TRIANGULAR_SOLVE_ALG2 = 2, + CUSOLVERRF_TRIANGULAR_SOLVE_ALG3 = 3, +} +#[repr(i32)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum cusolverRfNumericBoostReport_t { + CUSOLVERRF_NUMERIC_BOOST_NOT_USED = 0, + CUSOLVERRF_NUMERIC_BOOST_USED = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cusolverRfCommon { + _unused: [u8; 0], +} +pub type cusolverRfHandle_t = *mut cusolverRfCommon; +extern "C" { + pub fn cusolverRfCreate(handle: *mut cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfDestroy(handle: cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfGetMatrixFormat( + handle: cusolverRfHandle_t, + format: *mut cusolverRfMatrixFormat_t, + diag: *mut cusolverRfUnitDiagonal_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetMatrixFormat( + handle: cusolverRfHandle_t, + format: cusolverRfMatrixFormat_t, + diag: cusolverRfUnitDiagonal_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetNumericProperties( + handle: cusolverRfHandle_t, + zero: f64, + boost: f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfGetNumericProperties( + handle: cusolverRfHandle_t, + zero: *mut f64, + boost: *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfGetNumericBoostReport( + handle: cusolverRfHandle_t, + report: *mut cusolverRfNumericBoostReport_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetAlgs( + handle: cusolverRfHandle_t, + factAlg: cusolverRfFactorization_t, + solveAlg: cusolverRfTriangularSolve_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfGetAlgs( + handle: cusolverRfHandle_t, + factAlg: *mut cusolverRfFactorization_t, + solveAlg: *mut cusolverRfTriangularSolve_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfGetResetValuesFastMode( + handle: cusolverRfHandle_t, + fastMode: *mut cusolverRfResetValuesFastMode_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetResetValuesFastMode( + handle: cusolverRfHandle_t, + fastMode: cusolverRfResetValuesFastMode_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetupHost( + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + h_csrRowPtrA: *mut ::std::os::raw::c_int, + h_csrColIndA: *mut ::std::os::raw::c_int, + h_csrValA: *mut f64, + nnzL: ::std::os::raw::c_int, + h_csrRowPtrL: *mut ::std::os::raw::c_int, + h_csrColIndL: *mut ::std::os::raw::c_int, + h_csrValL: *mut f64, + nnzU: ::std::os::raw::c_int, + h_csrRowPtrU: *mut ::std::os::raw::c_int, + h_csrColIndU: *mut ::std::os::raw::c_int, + h_csrValU: *mut f64, + h_P: *mut ::std::os::raw::c_int, + h_Q: *mut ::std::os::raw::c_int, + handle: cusolverRfHandle_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSetupDevice( + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + csrRowPtrA: *mut ::std::os::raw::c_int, + csrColIndA: *mut ::std::os::raw::c_int, + csrValA: *mut f64, + nnzL: ::std::os::raw::c_int, + csrRowPtrL: *mut ::std::os::raw::c_int, + csrColIndL: *mut ::std::os::raw::c_int, + csrValL: *mut f64, + nnzU: ::std::os::raw::c_int, + csrRowPtrU: *mut ::std::os::raw::c_int, + csrColIndU: *mut ::std::os::raw::c_int, + csrValU: *mut f64, + P: *mut ::std::os::raw::c_int, + Q: *mut ::std::os::raw::c_int, + handle: cusolverRfHandle_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfResetValues( + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + csrRowPtrA: *mut ::std::os::raw::c_int, + csrColIndA: *mut ::std::os::raw::c_int, + csrValA: *mut f64, + P: *mut ::std::os::raw::c_int, + Q: *mut ::std::os::raw::c_int, + handle: cusolverRfHandle_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfAccessBundledFactorsDevice( + handle: cusolverRfHandle_t, + nnzM: *mut ::std::os::raw::c_int, + Mp: *mut *mut ::std::os::raw::c_int, + Mi: *mut *mut ::std::os::raw::c_int, + Mx: *mut *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfExtractBundledFactorsHost( + handle: cusolverRfHandle_t, + h_nnzM: *mut ::std::os::raw::c_int, + h_Mp: *mut *mut ::std::os::raw::c_int, + h_Mi: *mut *mut ::std::os::raw::c_int, + h_Mx: *mut *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfExtractSplitFactorsHost( + handle: cusolverRfHandle_t, + h_nnzL: *mut ::std::os::raw::c_int, + h_csrRowPtrL: *mut *mut ::std::os::raw::c_int, + h_csrColIndL: *mut *mut ::std::os::raw::c_int, + h_csrValL: *mut *mut f64, + h_nnzU: *mut ::std::os::raw::c_int, + h_csrRowPtrU: *mut *mut ::std::os::raw::c_int, + h_csrColIndU: *mut *mut ::std::os::raw::c_int, + h_csrValU: *mut *mut f64, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfSolve( + handle: cusolverRfHandle_t, + P: *mut ::std::os::raw::c_int, + Q: *mut ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + Temp: *mut f64, + ldt: ::std::os::raw::c_int, + XF: *mut f64, + ldxf: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchSetupHost( + batchSize: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + h_csrRowPtrA: *mut ::std::os::raw::c_int, + h_csrColIndA: *mut ::std::os::raw::c_int, + h_csrValA_array: *mut *mut f64, + nnzL: ::std::os::raw::c_int, + h_csrRowPtrL: *mut ::std::os::raw::c_int, + h_csrColIndL: *mut ::std::os::raw::c_int, + h_csrValL: *mut f64, + nnzU: ::std::os::raw::c_int, + h_csrRowPtrU: *mut ::std::os::raw::c_int, + h_csrColIndU: *mut ::std::os::raw::c_int, + h_csrValU: *mut f64, + h_P: *mut ::std::os::raw::c_int, + h_Q: *mut ::std::os::raw::c_int, + handle: cusolverRfHandle_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchResetValues( + batchSize: ::std::os::raw::c_int, + n: ::std::os::raw::c_int, + nnzA: ::std::os::raw::c_int, + csrRowPtrA: *mut ::std::os::raw::c_int, + csrColIndA: *mut ::std::os::raw::c_int, + csrValA_array: *mut *mut f64, + P: *mut ::std::os::raw::c_int, + Q: *mut ::std::os::raw::c_int, + handle: cusolverRfHandle_t, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchAnalyze(handle: cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchRefactor(handle: cusolverRfHandle_t) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchSolve( + handle: cusolverRfHandle_t, + P: *mut ::std::os::raw::c_int, + Q: *mut ::std::os::raw::c_int, + nrhs: ::std::os::raw::c_int, + Temp: *mut f64, + ldt: ::std::os::raw::c_int, + XF_array: *mut *mut f64, + ldxf: ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} +extern "C" { + pub fn cusolverRfBatchZeroPivot( + handle: cusolverRfHandle_t, + position: *mut ::std::os::raw::c_int, + ) -> cusolverStatus_t; +} diff --git a/cusolver-sys/src/lib.rs b/cusolver-sys/src/lib.rs new file mode 100644 index 0000000..a3d800f --- /dev/null +++ b/cusolver-sys/src/lib.rs @@ -0,0 +1,2 @@ +#![allow(non_camel_case_types)] +include!("cusolver.rs");