/* 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,
    CUDA_R_8F_E4M3 = 28,
    CUDA_R_8F_E5M2 = 29,
}
pub use self::cudaDataType_t as cudaDataType;
#[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 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;
}
pub type cublasLogCallback =
    ::core::option::Option<unsafe extern "C" fn(msg: *const core::ffi::c_char)>;
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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;
}
