cudarc 0.6.1

Safe wrappers around CUDA apis
Documentation
/* automatically generated by rust-bindgen 0.60.1 */

#[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!(
        ::core::mem::size_of::<float2>(),
        8usize,
        concat!("Size of: ", stringify!(float2))
    );
    assert_eq!(
        ::core::mem::align_of::<float2>(),
        8usize,
        concat!("Alignment of ", stringify!(float2))
    );
    fn test_field_x() {
        assert_eq!(
            unsafe {
                let uninit = ::core::mem::MaybeUninit::<float2>::uninit();
                let ptr = uninit.as_ptr();
                ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize
            },
            0usize,
            concat!("Offset of field: ", stringify!(float2), "::", stringify!(x))
        );
    }
    test_field_x();
    fn test_field_y() {
        assert_eq!(
            unsafe {
                let uninit = ::core::mem::MaybeUninit::<float2>::uninit();
                let ptr = uninit.as_ptr();
                ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize
            },
            4usize,
            concat!("Offset of field: ", stringify!(float2), "::", stringify!(y))
        );
    }
    test_field_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!(
        ::core::mem::size_of::<double2>(),
        16usize,
        concat!("Size of: ", stringify!(double2))
    );
    assert_eq!(
        ::core::mem::align_of::<double2>(),
        16usize,
        concat!("Alignment of ", stringify!(double2))
    );
    fn test_field_x() {
        assert_eq!(
            unsafe {
                let uninit = ::core::mem::MaybeUninit::<double2>::uninit();
                let ptr = uninit.as_ptr();
                ::core::ptr::addr_of!((*ptr).x) as usize - ptr as usize
            },
            0usize,
            concat!(
                "Offset of field: ",
                stringify!(double2),
                "::",
                stringify!(x)
            )
        );
    }
    test_field_x();
    fn test_field_y() {
        assert_eq!(
            unsafe {
                let uninit = ::core::mem::MaybeUninit::<double2>::uninit();
                let ptr = uninit.as_ptr();
                ::core::ptr::addr_of!((*ptr).y) as usize - ptr as usize
            },
            8usize,
            concat!(
                "Offset of field: ",
                stringify!(double2),
                "::",
                stringify!(y)
            )
        );
    }
    test_field_y();
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUstream_st {
    _unused: [u8; 0],
}
pub type cudaStream_t = *mut CUstream_st;
pub type cuFloatComplex = float2;
pub type cuDoubleComplex = double2;
pub type cuComplex = cuFloatComplex;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
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(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum libraryPropertyType_t {
    MAJOR_VERSION = 0,
    MINOR_VERSION = 1,
    PATCH_LEVEL = 2,
}
pub use self::libraryPropertyType_t as libraryPropertyType;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasStatus_t {
    CUBLAS_STATUS_SUCCESS = 0,
    CUBLAS_STATUS_NOT_INITIALIZED = 1,
    CUBLAS_STATUS_ALLOC_FAILED = 3,
    CUBLAS_STATUS_INVALID_VALUE = 7,
    CUBLAS_STATUS_ARCH_MISMATCH = 8,
    CUBLAS_STATUS_MAPPING_ERROR = 11,
    CUBLAS_STATUS_EXECUTION_FAILED = 13,
    CUBLAS_STATUS_INTERNAL_ERROR = 14,
    CUBLAS_STATUS_NOT_SUPPORTED = 15,
    CUBLAS_STATUS_LICENSE_ERROR = 16,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasFillMode_t {
    CUBLAS_FILL_MODE_LOWER = 0,
    CUBLAS_FILL_MODE_UPPER = 1,
    CUBLAS_FILL_MODE_FULL = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasDiagType_t {
    CUBLAS_DIAG_NON_UNIT = 0,
    CUBLAS_DIAG_UNIT = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
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(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasOperation_t {
    CUBLAS_OP_N = 0,
    CUBLAS_OP_T = 1,
    CUBLAS_OP_C = 2,
    CUBLAS_OP_CONJG = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasPointerMode_t {
    CUBLAS_POINTER_MODE_HOST = 0,
    CUBLAS_POINTER_MODE_DEVICE = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasAtomicsMode_t {
    CUBLAS_ATOMICS_NOT_ALLOWED = 0,
    CUBLAS_ATOMICS_ALLOWED = 1,
}
impl cublasGemmAlgo_t {
    pub const CUBLAS_GEMM_DEFAULT: cublasGemmAlgo_t = cublasGemmAlgo_t::CUBLAS_GEMM_DFALT;
}
impl cublasGemmAlgo_t {
    pub const CUBLAS_GEMM_DFALT_TENSOR_OP: cublasGemmAlgo_t =
        cublasGemmAlgo_t::CUBLAS_GEMM_DEFAULT_TENSOR_OP;
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasGemmAlgo_t {
    CUBLAS_GEMM_DFALT = -1,
    CUBLAS_GEMM_ALGO0 = 0,
    CUBLAS_GEMM_ALGO1 = 1,
    CUBLAS_GEMM_ALGO2 = 2,
    CUBLAS_GEMM_ALGO3 = 3,
    CUBLAS_GEMM_ALGO4 = 4,
    CUBLAS_GEMM_ALGO5 = 5,
    CUBLAS_GEMM_ALGO6 = 6,
    CUBLAS_GEMM_ALGO7 = 7,
    CUBLAS_GEMM_ALGO8 = 8,
    CUBLAS_GEMM_ALGO9 = 9,
    CUBLAS_GEMM_ALGO10 = 10,
    CUBLAS_GEMM_ALGO11 = 11,
    CUBLAS_GEMM_ALGO12 = 12,
    CUBLAS_GEMM_ALGO13 = 13,
    CUBLAS_GEMM_ALGO14 = 14,
    CUBLAS_GEMM_ALGO15 = 15,
    CUBLAS_GEMM_ALGO16 = 16,
    CUBLAS_GEMM_ALGO17 = 17,
    CUBLAS_GEMM_ALGO18 = 18,
    CUBLAS_GEMM_ALGO19 = 19,
    CUBLAS_GEMM_ALGO20 = 20,
    CUBLAS_GEMM_ALGO21 = 21,
    CUBLAS_GEMM_ALGO22 = 22,
    CUBLAS_GEMM_ALGO23 = 23,
    CUBLAS_GEMM_DEFAULT_TENSOR_OP = 99,
    CUBLAS_GEMM_ALGO0_TENSOR_OP = 100,
    CUBLAS_GEMM_ALGO1_TENSOR_OP = 101,
    CUBLAS_GEMM_ALGO2_TENSOR_OP = 102,
    CUBLAS_GEMM_ALGO3_TENSOR_OP = 103,
    CUBLAS_GEMM_ALGO4_TENSOR_OP = 104,
    CUBLAS_GEMM_ALGO5_TENSOR_OP = 105,
    CUBLAS_GEMM_ALGO6_TENSOR_OP = 106,
    CUBLAS_GEMM_ALGO7_TENSOR_OP = 107,
    CUBLAS_GEMM_ALGO8_TENSOR_OP = 108,
    CUBLAS_GEMM_ALGO9_TENSOR_OP = 109,
    CUBLAS_GEMM_ALGO10_TENSOR_OP = 110,
    CUBLAS_GEMM_ALGO11_TENSOR_OP = 111,
    CUBLAS_GEMM_ALGO12_TENSOR_OP = 112,
    CUBLAS_GEMM_ALGO13_TENSOR_OP = 113,
    CUBLAS_GEMM_ALGO14_TENSOR_OP = 114,
    CUBLAS_GEMM_ALGO15_TENSOR_OP = 115,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasMath_t {
    CUBLAS_DEFAULT_MATH = 0,
    CUBLAS_TENSOR_OP_MATH = 1,
    CUBLAS_PEDANTIC_MATH = 2,
    CUBLAS_TF32_TENSOR_OP_MATH = 3,
    CUBLAS_MATH_DISALLOW_REDUCED_PRECISION_REDUCTION = 16,
}
pub use self::cudaDataType as cublasDataType_t;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cublasComputeType_t {
    CUBLAS_COMPUTE_16F = 64,
    CUBLAS_COMPUTE_16F_PEDANTIC = 65,
    CUBLAS_COMPUTE_32F = 68,
    CUBLAS_COMPUTE_32F_PEDANTIC = 69,
    CUBLAS_COMPUTE_32F_FAST_16F = 74,
    CUBLAS_COMPUTE_32F_FAST_16BF = 75,
    CUBLAS_COMPUTE_32F_FAST_TF32 = 77,
    CUBLAS_COMPUTE_64F = 70,
    CUBLAS_COMPUTE_64F_PEDANTIC = 71,
    CUBLAS_COMPUTE_32I = 72,
    CUBLAS_COMPUTE_32I_PEDANTIC = 73,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cublasContext {
    _unused: [u8; 0],
}
pub type cublasHandle_t = *mut cublasContext;
extern "C" {
    pub fn cublasCreate_v2(handle: *mut cublasHandle_t) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDestroy_v2(handle: cublasHandle_t) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetVersion_v2(
        handle: cublasHandle_t,
        version: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetProperty(
        type_: libraryPropertyType,
        value: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetCudartVersion() -> usize;
}
extern "C" {
    pub fn cublasSetWorkspace_v2(
        handle: cublasHandle_t,
        workspace: *mut ::core::ffi::c_void,
        workspaceSizeInBytes: usize,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetStream_v2(handle: cublasHandle_t, streamId: cudaStream_t) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetStream_v2(
        handle: cublasHandle_t,
        streamId: *mut cudaStream_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetPointerMode_v2(
        handle: cublasHandle_t,
        mode: *mut cublasPointerMode_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetPointerMode_v2(
        handle: cublasHandle_t,
        mode: cublasPointerMode_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetAtomicsMode(
        handle: cublasHandle_t,
        mode: *mut cublasAtomicsMode_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetAtomicsMode(
        handle: cublasHandle_t,
        mode: cublasAtomicsMode_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetMathMode(handle: cublasHandle_t, mode: *mut cublasMath_t) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetMathMode(handle: cublasHandle_t, mode: cublasMath_t) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetSmCountTarget(
        handle: cublasHandle_t,
        smCountTarget: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetSmCountTarget(
        handle: cublasHandle_t,
        smCountTarget: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetStatusName(status: cublasStatus_t) -> *const core::ffi::c_char;
}
extern "C" {
    pub fn cublasGetStatusString(status: cublasStatus_t) -> *const core::ffi::c_char;
}
pub type cublasLogCallback =
    ::core::option::Option<unsafe extern "C" fn(msg: *const core::ffi::c_char)>;
extern "C" {
    pub fn cublasLoggerConfigure(
        logIsOn: core::ffi::c_int,
        logToStdOut: core::ffi::c_int,
        logToStdErr: core::ffi::c_int,
        logFileName: *const core::ffi::c_char,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetLoggerCallback(userCallback: cublasLogCallback) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetLoggerCallback(userCallback: *mut cublasLogCallback) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetVector(
        n: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        incx: core::ffi::c_int,
        devicePtr: *mut ::core::ffi::c_void,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetVector(
        n: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetMatrix(
        rows: core::ffi::c_int,
        cols: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        A: *const ::core::ffi::c_void,
        lda: core::ffi::c_int,
        B: *mut ::core::ffi::c_void,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetMatrix(
        rows: core::ffi::c_int,
        cols: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        A: *const ::core::ffi::c_void,
        lda: core::ffi::c_int,
        B: *mut ::core::ffi::c_void,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetVectorAsync(
        n: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        hostPtr: *const ::core::ffi::c_void,
        incx: core::ffi::c_int,
        devicePtr: *mut ::core::ffi::c_void,
        incy: core::ffi::c_int,
        stream: cudaStream_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetVectorAsync(
        n: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        devicePtr: *const ::core::ffi::c_void,
        incx: core::ffi::c_int,
        hostPtr: *mut ::core::ffi::c_void,
        incy: core::ffi::c_int,
        stream: cudaStream_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSetMatrixAsync(
        rows: core::ffi::c_int,
        cols: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        A: *const ::core::ffi::c_void,
        lda: core::ffi::c_int,
        B: *mut ::core::ffi::c_void,
        ldb: core::ffi::c_int,
        stream: cudaStream_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGetMatrixAsync(
        rows: core::ffi::c_int,
        cols: core::ffi::c_int,
        elemSize: core::ffi::c_int,
        A: *const ::core::ffi::c_void,
        lda: core::ffi::c_int,
        B: *mut ::core::ffi::c_void,
        ldb: core::ffi::c_int,
        stream: cudaStream_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasXerbla(srName: *const core::ffi::c_char, info: core::ffi::c_int);
}
extern "C" {
    pub fn cublasNrm2Ex(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        result: *mut ::core::ffi::c_void,
        resultType: cudaDataType,
        executionType: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSnrm2_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        result: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDnrm2_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        result: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasScnrm2_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        result: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDznrm2_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        result: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDotEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *const ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
        result: *mut ::core::ffi::c_void,
        resultType: cudaDataType,
        executionType: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDotcEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *const ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
        result: *mut ::core::ffi::c_void,
        resultType: cudaDataType,
        executionType: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSdot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *const f32,
        incy: core::ffi::c_int,
        result: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDdot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *const f64,
        incy: core::ffi::c_int,
        result: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCdotu_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        result: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCdotc_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        result: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZdotu_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        result: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZdotc_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        result: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasScalEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const ::core::ffi::c_void,
        alphaType: cudaDataType,
        x: *mut ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        executionType: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZdscal_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasAxpyEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const ::core::ffi::c_void,
        alphaType: cudaDataType,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSaxpy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDaxpy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCaxpy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZaxpy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCopyEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasScopy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDcopy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCcopy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZcopy_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSswap_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDswap_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCswap_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZswap_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSwapEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIsamax_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIdamax_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIcamax_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIzamax_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIamaxEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIsamin_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIdamin_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIcamin_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIzamin_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasIaminEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        result: *mut core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasAsumEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        result: *mut ::core::ffi::c_void,
        resultType: cudaDataType,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSasum_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        result: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDasum_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        result: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasScasum_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        result: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDzasum_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        result: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
        y: *mut f32,
        incy: core::ffi::c_int,
        c: *const f32,
        s: *const f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
        y: *mut f64,
        incy: core::ffi::c_int,
        c: *const f64,
        s: *const f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
        c: *const f32,
        s: *const cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
        c: *const f32,
        s: *const f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
        c: *const f64,
        s: *const cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZdrot_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
        c: *const f64,
        s: *const f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasRotEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
        c: *const ::core::ffi::c_void,
        s: *const ::core::ffi::c_void,
        csType: cudaDataType,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSrotg_v2(
        handle: cublasHandle_t,
        a: *mut f32,
        b: *mut f32,
        c: *mut f32,
        s: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDrotg_v2(
        handle: cublasHandle_t,
        a: *mut f64,
        b: *mut f64,
        c: *mut f64,
        s: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCrotg_v2(
        handle: cublasHandle_t,
        a: *mut cuComplex,
        b: *mut cuComplex,
        c: *mut f32,
        s: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZrotg_v2(
        handle: cublasHandle_t,
        a: *mut cuDoubleComplex,
        b: *mut cuDoubleComplex,
        c: *mut f64,
        s: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasRotgEx(
        handle: cublasHandle_t,
        a: *mut ::core::ffi::c_void,
        b: *mut ::core::ffi::c_void,
        abType: cudaDataType,
        c: *mut ::core::ffi::c_void,
        s: *mut ::core::ffi::c_void,
        csType: cudaDataType,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSrotm_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
        y: *mut f32,
        incy: core::ffi::c_int,
        param: *const f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDrotm_v2(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
        y: *mut f64,
        incy: core::ffi::c_int,
        param: *const f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasRotmEx(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        x: *mut ::core::ffi::c_void,
        xType: cudaDataType,
        incx: core::ffi::c_int,
        y: *mut ::core::ffi::c_void,
        yType: cudaDataType,
        incy: core::ffi::c_int,
        param: *const ::core::ffi::c_void,
        paramType: cudaDataType,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSrotmg_v2(
        handle: cublasHandle_t,
        d1: *mut f32,
        d2: *mut f32,
        x1: *mut f32,
        y1: *const f32,
        param: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDrotmg_v2(
        handle: cublasHandle_t,
        d1: *mut f64,
        d2: *mut f64,
        x1: *mut f64,
        y1: *const f64,
        param: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasRotmgEx(
        handle: cublasHandle_t,
        d1: *mut ::core::ffi::c_void,
        d1Type: cudaDataType,
        d2: *mut ::core::ffi::c_void,
        d2Type: cudaDataType,
        x1: *mut ::core::ffi::c_void,
        x1Type: cudaDataType,
        y1: *const ::core::ffi::c_void,
        y1Type: cudaDataType,
        param: *mut ::core::ffi::c_void,
        paramType: cudaDataType,
        executiontype: cudaDataType,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgbmv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        kl: core::ffi::c_int,
        ku: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgbmv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        kl: core::ffi::c_int,
        ku: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgbmv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        kl: core::ffi::c_int,
        ku: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgbmv_v2(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        kl: core::ffi::c_int,
        ku: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const f32,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const f64,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const cuComplex,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const cuDoubleComplex,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStpsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const f32,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtpsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const f64,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtpsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const cuComplex,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtpsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        AP: *const cuDoubleComplex,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStbsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *mut f32,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtbsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *mut f64,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtbsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *mut cuComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtbsv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *mut cuDoubleComplex,
        incx: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsymv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsymv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsymv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsymv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChemv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhemv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhbmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSspmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        AP: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDspmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        AP: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        AP: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhpmv_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        AP: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSger_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *const f32,
        incy: core::ffi::c_int,
        A: *mut f32,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDger_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *const f64,
        incy: core::ffi::c_int,
        A: *mut f64,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgeru_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgerc_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgeru_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgerc_v2(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsyr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        A: *mut f32,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsyr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        A: *mut f64,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsyr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCher_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZher_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSspr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        AP: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDspr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        AP: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChpr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        AP: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhpr_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        AP: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsyr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *const f32,
        incy: core::ffi::c_int,
        A: *mut f32,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsyr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *const f64,
        incy: core::ffi::c_int,
        A: *mut f64,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsyr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCher2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZher2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSspr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f32,
        x: *const f32,
        incx: core::ffi::c_int,
        y: *const f32,
        incy: core::ffi::c_int,
        AP: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDspr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const f64,
        x: *const f64,
        incx: core::ffi::c_int,
        y: *const f64,
        incy: core::ffi::c_int,
        AP: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChpr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        y: *const cuComplex,
        incy: core::ffi::c_int,
        AP: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhpr2_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        y: *const cuDoubleComplex,
        incy: core::ffi::c_int,
        AP: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemvBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        Aarray: *const *const f32,
        lda: core::ffi::c_int,
        xarray: *const *const f32,
        incx: core::ffi::c_int,
        beta: *const f32,
        yarray: *const *mut f32,
        incy: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemvBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        Aarray: *const *const f64,
        lda: core::ffi::c_int,
        xarray: *const *const f64,
        incx: core::ffi::c_int,
        beta: *const f64,
        yarray: *const *mut f64,
        incy: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemvBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        Aarray: *const *const cuComplex,
        lda: core::ffi::c_int,
        xarray: *const *const cuComplex,
        incx: core::ffi::c_int,
        beta: *const cuComplex,
        yarray: *const *mut cuComplex,
        incy: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemvBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        Aarray: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        xarray: *const *const cuDoubleComplex,
        incx: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        yarray: *const *mut cuDoubleComplex,
        incy: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemvStridedBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        x: *const f32,
        incx: core::ffi::c_int,
        stridex: core::ffi::c_longlong,
        beta: *const f32,
        y: *mut f32,
        incy: core::ffi::c_int,
        stridey: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemvStridedBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        x: *const f64,
        incx: core::ffi::c_int,
        stridex: core::ffi::c_longlong,
        beta: *const f64,
        y: *mut f64,
        incy: core::ffi::c_int,
        stridey: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemvStridedBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        stridex: core::ffi::c_longlong,
        beta: *const cuComplex,
        y: *mut cuComplex,
        incy: core::ffi::c_int,
        stridey: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemvStridedBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        stridex: core::ffi::c_longlong,
        beta: *const cuDoubleComplex,
        y: *mut cuDoubleComplex,
        incy: core::ffi::c_int,
        stridey: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemm_v2(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *const f32,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemm_v2(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *const f64,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemm_v2(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemm3m(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemm3mEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        B: *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemm_v2(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemm3m(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemmEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        B: *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGemmEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const ::core::ffi::c_void,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        B: *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        beta: *const ::core::ffi::c_void,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
        computeType: cublasComputeType_t,
        algo: cublasGemmAlgo_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemmEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        B: *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasUint8gemmBias(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        transc: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        A: *const core::ffi::c_uchar,
        A_bias: core::ffi::c_int,
        lda: core::ffi::c_int,
        B: *const core::ffi::c_uchar,
        B_bias: core::ffi::c_int,
        ldb: core::ffi::c_int,
        C: *mut core::ffi::c_uchar,
        C_bias: core::ffi::c_int,
        ldc: core::ffi::c_int,
        C_mult: core::ffi::c_int,
        C_shift: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsyrk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsyrk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyrk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsyrk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyrkEx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyrk3mEx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCherk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        beta: *const f32,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZherk_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        beta: *const f64,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCherkEx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        beta: *const f32,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCherk3mEx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        beta: *const f32,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsyr2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *const f32,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsyr2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *const f64,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyr2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsyr2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCher2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZher2k_v2(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsyrkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *const f32,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsyrkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *const f64,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsyrkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsyrkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCherkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZherkx(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSsymm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *const f32,
        ldb: core::ffi::c_int,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDsymm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *const f64,
        ldb: core::ffi::c_int,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCsymm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZsymm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasChemm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZhemm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrsm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *mut f32,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrsm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *mut f64,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrsm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *mut cuComplex,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrsm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *mut cuDoubleComplex,
        ldb: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrmm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        B: *const f32,
        ldb: core::ffi::c_int,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrmm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        B: *const f64,
        ldb: core::ffi::c_int,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrmm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrmm_v2(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemmBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        Aarray: *const *const f32,
        lda: core::ffi::c_int,
        Barray: *const *const f32,
        ldb: core::ffi::c_int,
        beta: *const f32,
        Carray: *const *mut f32,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemmBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        Aarray: *const *const f64,
        lda: core::ffi::c_int,
        Barray: *const *const f64,
        ldb: core::ffi::c_int,
        beta: *const f64,
        Carray: *const *mut f64,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemmBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        Aarray: *const *const cuComplex,
        lda: core::ffi::c_int,
        Barray: *const *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        Carray: *const *mut cuComplex,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemm3mBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        Aarray: *const *const cuComplex,
        lda: core::ffi::c_int,
        Barray: *const *const cuComplex,
        ldb: core::ffi::c_int,
        beta: *const cuComplex,
        Carray: *const *mut cuComplex,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemmBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        Aarray: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        Barray: *const *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        Carray: *const *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGemmBatchedEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const ::core::ffi::c_void,
        Aarray: *const *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        Barray: *const *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        beta: *const ::core::ffi::c_void,
        Carray: *const *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
        batchCount: core::ffi::c_int,
        computeType: cublasComputeType_t,
        algo: cublasGemmAlgo_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasGemmStridedBatchedEx(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const ::core::ffi::c_void,
        A: *const ::core::ffi::c_void,
        Atype: cudaDataType,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const ::core::ffi::c_void,
        Btype: cudaDataType,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const ::core::ffi::c_void,
        C: *mut ::core::ffi::c_void,
        Ctype: cudaDataType,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
        computeType: cublasComputeType_t,
        algo: cublasGemmAlgo_t,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgemmStridedBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const f32,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const f32,
        C: *mut f32,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgemmStridedBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const f64,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const f64,
        C: *mut f64,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemmStridedBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgemm3mStridedBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const cuComplex,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgemmStridedBatched(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        k: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        strideA: core::ffi::c_longlong,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        strideB: core::ffi::c_longlong,
        beta: *const cuDoubleComplex,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
        strideC: core::ffi::c_longlong,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgeam(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const f32,
        lda: core::ffi::c_int,
        beta: *const f32,
        B: *const f32,
        ldb: core::ffi::c_int,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgeam(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const f64,
        lda: core::ffi::c_int,
        beta: *const f64,
        B: *const f64,
        ldb: core::ffi::c_int,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgeam(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        beta: *const cuComplex,
        B: *const cuComplex,
        ldb: core::ffi::c_int,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgeam(
        handle: cublasHandle_t,
        transa: cublasOperation_t,
        transb: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        beta: *const cuDoubleComplex,
        B: *const cuDoubleComplex,
        ldb: core::ffi::c_int,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgetrfBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *mut f32,
        lda: core::ffi::c_int,
        P: *mut core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgetrfBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *mut f64,
        lda: core::ffi::c_int,
        P: *mut core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgetrfBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *mut cuComplex,
        lda: core::ffi::c_int,
        P: *mut core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgetrfBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *mut cuDoubleComplex,
        lda: core::ffi::c_int,
        P: *mut core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgetriBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const f32,
        lda: core::ffi::c_int,
        P: *const core::ffi::c_int,
        C: *const *mut f32,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgetriBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const f64,
        lda: core::ffi::c_int,
        P: *const core::ffi::c_int,
        C: *const *mut f64,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgetriBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const cuComplex,
        lda: core::ffi::c_int,
        P: *const core::ffi::c_int,
        C: *const *mut cuComplex,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgetriBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        P: *const core::ffi::c_int,
        C: *const *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgetrsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *const f32,
        lda: core::ffi::c_int,
        devIpiv: *const core::ffi::c_int,
        Barray: *const *mut f32,
        ldb: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgetrsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *const f64,
        lda: core::ffi::c_int,
        devIpiv: *const core::ffi::c_int,
        Barray: *const *mut f64,
        ldb: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgetrsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *const cuComplex,
        lda: core::ffi::c_int,
        devIpiv: *const core::ffi::c_int,
        Barray: *const *mut cuComplex,
        ldb: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgetrsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        devIpiv: *const core::ffi::c_int,
        Barray: *const *mut cuDoubleComplex,
        ldb: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrsmBatched(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f32,
        A: *const *const f32,
        lda: core::ffi::c_int,
        B: *const *mut f32,
        ldb: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrsmBatched(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const f64,
        A: *const *const f64,
        lda: core::ffi::c_int,
        B: *const *mut f64,
        ldb: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrsmBatched(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuComplex,
        A: *const *const cuComplex,
        lda: core::ffi::c_int,
        B: *const *mut cuComplex,
        ldb: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrsmBatched(
        handle: cublasHandle_t,
        side: cublasSideMode_t,
        uplo: cublasFillMode_t,
        trans: cublasOperation_t,
        diag: cublasDiagType_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        alpha: *const cuDoubleComplex,
        A: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        B: *const *mut cuDoubleComplex,
        ldb: core::ffi::c_int,
        batchCount: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSmatinvBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const f32,
        lda: core::ffi::c_int,
        Ainv: *const *mut f32,
        lda_inv: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDmatinvBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const f64,
        lda: core::ffi::c_int,
        Ainv: *const *mut f64,
        lda_inv: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCmatinvBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const cuComplex,
        lda: core::ffi::c_int,
        Ainv: *const *mut cuComplex,
        lda_inv: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZmatinvBatched(
        handle: cublasHandle_t,
        n: core::ffi::c_int,
        A: *const *const cuDoubleComplex,
        lda: core::ffi::c_int,
        Ainv: *const *mut cuDoubleComplex,
        lda_inv: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgeqrfBatched(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        Aarray: *const *mut f32,
        lda: core::ffi::c_int,
        TauArray: *const *mut f32,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgeqrfBatched(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        Aarray: *const *mut f64,
        lda: core::ffi::c_int,
        TauArray: *const *mut f64,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgeqrfBatched(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        Aarray: *const *mut cuComplex,
        lda: core::ffi::c_int,
        TauArray: *const *mut cuComplex,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgeqrfBatched(
        handle: cublasHandle_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        Aarray: *const *mut cuDoubleComplex,
        lda: core::ffi::c_int,
        TauArray: *const *mut cuDoubleComplex,
        info: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSgelsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *mut f32,
        lda: core::ffi::c_int,
        Carray: *const *mut f32,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        devInfoArray: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDgelsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *mut f64,
        lda: core::ffi::c_int,
        Carray: *const *mut f64,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        devInfoArray: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCgelsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *mut cuComplex,
        lda: core::ffi::c_int,
        Carray: *const *mut cuComplex,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        devInfoArray: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZgelsBatched(
        handle: cublasHandle_t,
        trans: cublasOperation_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        nrhs: core::ffi::c_int,
        Aarray: *const *mut cuDoubleComplex,
        lda: core::ffi::c_int,
        Carray: *const *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
        info: *mut core::ffi::c_int,
        devInfoArray: *mut core::ffi::c_int,
        batchSize: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasSdgmm(
        handle: cublasHandle_t,
        mode: cublasSideMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        x: *const f32,
        incx: core::ffi::c_int,
        C: *mut f32,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDdgmm(
        handle: cublasHandle_t,
        mode: cublasSideMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        x: *const f64,
        incx: core::ffi::c_int,
        C: *mut f64,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCdgmm(
        handle: cublasHandle_t,
        mode: cublasSideMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        x: *const cuComplex,
        incx: core::ffi::c_int,
        C: *mut cuComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZdgmm(
        handle: cublasHandle_t,
        mode: cublasSideMode_t,
        m: core::ffi::c_int,
        n: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        x: *const cuDoubleComplex,
        incx: core::ffi::c_int,
        C: *mut cuDoubleComplex,
        ldc: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStpttr(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        AP: *const f32,
        A: *mut f32,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtpttr(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        AP: *const f64,
        A: *mut f64,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtpttr(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        AP: *const cuComplex,
        A: *mut cuComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtpttr(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        AP: *const cuDoubleComplex,
        A: *mut cuDoubleComplex,
        lda: core::ffi::c_int,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasStrttp(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        A: *const f32,
        lda: core::ffi::c_int,
        AP: *mut f32,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasDtrttp(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        A: *const f64,
        lda: core::ffi::c_int,
        AP: *mut f64,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasCtrttp(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        A: *const cuComplex,
        lda: core::ffi::c_int,
        AP: *mut cuComplex,
    ) -> cublasStatus_t;
}
extern "C" {
    pub fn cublasZtrttp(
        handle: cublasHandle_t,
        uplo: cublasFillMode_t,
        n: core::ffi::c_int,
        A: *const cuDoubleComplex,
        lda: core::ffi::c_int,
        AP: *mut cuDoubleComplex,
    ) -> cublasStatus_t;
}