pub struct rocblas {
Show 624 fields pub rocblas_create_handle: Result<unsafe extern "C" fn(handle: *mut rocblas_handle) -> rocblas_status, Error>, pub rocblas_destroy_handle: Result<unsafe extern "C" fn(handle: rocblas_handle) -> rocblas_status, Error>, pub rocblas_set_stream: Result<unsafe extern "C" fn(handle: rocblas_handle, stream: hipStream_t) -> rocblas_status, Error>, pub rocblas_get_stream: Result<unsafe extern "C" fn(handle: rocblas_handle, stream: *mut hipStream_t) -> rocblas_status, Error>, pub rocblas_set_pointer_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, pointer_mode: rocblas_pointer_mode) -> rocblas_status, Error>, pub rocblas_get_pointer_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, pointer_mode: *mut rocblas_pointer_mode) -> rocblas_status, Error>, pub rocblas_set_int8_type_for_hipblas: Result<unsafe extern "C" fn(handle: rocblas_handle, int8_type: rocblas_int8_type_for_hipblas) -> rocblas_status, Error>, pub rocblas_get_int8_type_for_hipblas: Result<unsafe extern "C" fn(handle: rocblas_handle, int8_type: *mut rocblas_int8_type_for_hipblas) -> rocblas_status, Error>, pub rocblas_set_atomics_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, atomics_mode: rocblas_atomics_mode) -> rocblas_status, Error>, pub rocblas_get_atomics_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, atomics_mode: *mut rocblas_atomics_mode) -> rocblas_status, Error>, pub rocblas_query_int8_layout_flag: Result<unsafe extern "C" fn(handle: rocblas_handle, flag: *mut rocblas_gemm_flags) -> rocblas_status, Error>, pub rocblas_pointer_to_mode: Result<unsafe extern "C" fn(ptr: *mut c_void) -> rocblas_pointer_mode, Error>, pub rocblas_set_vector: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_get_vector: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_set_matrix: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_get_matrix: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_set_vector_async: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>, pub rocblas_get_vector_async: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>, pub rocblas_set_matrix_async: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>, pub rocblas_get_matrix_async: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>, pub rocblas_set_start_stop_events: Result<unsafe extern "C" fn(handle: rocblas_handle, startEvent: hipEvent_t, stopEvent: hipEvent_t) -> rocblas_status, Error>, pub rocblas_set_solution_fitness_query: Result<unsafe extern "C" fn(handle: rocblas_handle, fitness: *mut f64) -> rocblas_status, Error>, pub rocblas_set_performance_metric: Result<unsafe extern "C" fn(handle: rocblas_handle, metric: rocblas_performance_metric) -> rocblas_status, Error>, pub rocblas_get_performance_metric: Result<unsafe extern "C" fn(handle: rocblas_handle, metric: *mut rocblas_performance_metric) -> rocblas_status, Error>, pub rocblas_sscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_cscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_zscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_csscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_sscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_scopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dcopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_ccopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zcopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_scopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dcopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ccopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zcopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_scopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dcopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ccopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zcopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_ddot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_hdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, y: *const rocblas_half, incy: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>, pub rocblas_bfdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, y: *const rocblas_bfloat16, incy: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>, pub rocblas_cdotu: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotu: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_cdotc: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotc: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_sdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, batch_count: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_ddot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, batch_count: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_hdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_half, incx: rocblas_int, y: *const *const rocblas_half, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>, pub rocblas_bfdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_bfloat16, incx: rocblas_int, y: *const *const rocblas_bfloat16, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>, pub rocblas_cdotu_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotu_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_cdotc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_sdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_ddot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_hdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>, pub rocblas_bfdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_bfloat16, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>, pub rocblas_cdotu_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotu_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_cdotc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zdotc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_sswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_cswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_sswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_saxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_daxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_haxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, y: *mut rocblas_half, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_caxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zaxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_haxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const *const rocblas_half, incx: rocblas_int, y: *const *mut rocblas_half, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_saxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_daxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_caxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zaxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_haxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_saxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_daxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_caxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zaxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_dasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_scasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_dzasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_sasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_scasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dzasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_sasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_scasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dzasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_snrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_dnrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_scnrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>, pub rocblas_dznrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>, pub rocblas_snrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dnrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_scnrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dznrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_snrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dnrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_scnrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>, pub rocblas_dznrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>, pub rocblas_isamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_isamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_isamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_isamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_isamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_isamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_idamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_icamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_izamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>, pub rocblas_srot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, c: *const f32, s: *const f32) -> rocblas_status, Error>, pub rocblas_drot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, c: *const f64, s: *const f64) -> rocblas_status, Error>, pub rocblas_crot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_csrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32) -> rocblas_status, Error>, pub rocblas_zrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_zdrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64) -> rocblas_status, Error>, pub rocblas_srot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_crot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_crot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f32, b: *mut f32, c: *mut f32, s: *mut f32) -> rocblas_status, Error>, pub rocblas_drotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f64, b: *mut f64, c: *mut f64, s: *mut f64) -> rocblas_status, Error>, pub rocblas_crotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_float_complex, b: *mut rocblas_float_complex, c: *mut f32, s: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zrotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_double_complex, b: *mut rocblas_double_complex, c: *mut f64, s: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_srotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut f32, b: *const *mut f32, c: *const *mut f32, s: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut f64, b: *const *mut f64, c: *const *mut f64, s: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_crotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut rocblas_float_complex, b: *const *mut rocblas_float_complex, c: *const *mut f32, s: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zrotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut rocblas_double_complex, b: *const *mut rocblas_double_complex, c: *const *mut f64, s: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f32, stride_a: rocblas_stride, b: *mut f32, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut f32, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f64, stride_a: rocblas_stride, b: *mut f64, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut f64, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_crotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_float_complex, stride_a: rocblas_stride, b: *mut rocblas_float_complex, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut rocblas_float_complex, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zrotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_double_complex, stride_a: rocblas_stride, b: *mut rocblas_double_complex, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut rocblas_double_complex, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotm: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, param: *const f32) -> rocblas_status, Error>, pub rocblas_drotm: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, param: *const f64) -> rocblas_status, Error>, pub rocblas_srotm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, param: *const *const f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, param: *const *const f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, param: *const f32, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, param: *const f64, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotmg: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f32, d2: *mut f32, x1: *mut f32, y1: *const f32, param: *mut f32) -> rocblas_status, Error>, pub rocblas_drotmg: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f64, d2: *mut f64, x1: *mut f64, y1: *const f64, param: *mut f64) -> rocblas_status, Error>, pub rocblas_srotmg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *const *mut f32, d2: *const *mut f32, x1: *const *mut f32, y1: *const *const f32, param: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotmg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *const *mut f64, d2: *const *mut f64, x1: *const *mut f64, y1: *const *const f64, param: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_srotmg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f32, stride_d1: rocblas_stride, d2: *mut f32, stride_d2: rocblas_stride, x1: *mut f32, stride_x1: rocblas_stride, y1: *const f32, stride_y1: rocblas_stride, param: *mut f32, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_drotmg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f64, stride_d1: rocblas_stride, d2: *mut f64, stride_d2: rocblas_stride, x1: *mut f64, stride_x1: rocblas_stride, y1: *const f64, stride_y1: rocblas_stride, param: *mut f64, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_chbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zhpr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_chpr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zhpr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_chpr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chpr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhpr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_stpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sger: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_dger: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeru: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeru: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgerc: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgerc: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_sger_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dger_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeru_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeru_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgerc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgerc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sger_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dger_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeru_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeru_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgerc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgerc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, AP: *mut f32) -> rocblas_status, Error>, pub rocblas_dspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, AP: *mut f64) -> rocblas_status, Error>, pub rocblas_cspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>, pub rocblas_zspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>, pub rocblas_sspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, AP: *mut f32) -> rocblas_status, Error>, pub rocblas_dspr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, AP: *mut f64) -> rocblas_status, Error>, pub rocblas_sspr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sspr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, y: *const f32, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dspr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, y: *const f64, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_chemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zhemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cher2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zher2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cherkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zherkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ssyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dsyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_csyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zsyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, invA: *mut f32, ldinvA: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, invA: *mut f64, ldinvA: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, invA: *mut rocblas_float_complex, ldinvA: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, invA: *mut rocblas_double_complex, ldinvA: rocblas_int) -> rocblas_status, Error>, pub rocblas_strtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f32, lda: rocblas_int, invA: *const *mut f32, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f64, lda: rocblas_int, invA: *const *mut f64, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, invA: *const *mut rocblas_float_complex, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, invA: *const *mut rocblas_double_complex, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f32, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f64, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_float_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_double_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_strsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dtrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ctrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ztrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_hgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, B: *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_hgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const *const rocblas_half, lda: rocblas_int, B: *const *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *const *mut rocblas_half, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_hgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_hgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_ddgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_sdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ddgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_ddgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_sgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_dgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_cgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_zgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>, pub rocblas_gemm_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>, pub rocblas_gemm_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>, pub rocblas_gemm_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, stride_d: rocblas_stride, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>, pub rocblas_gemm_ext2: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, row_stride_a: rocblas_stride, col_stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, row_stride_b: rocblas_stride, col_stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, row_stride_c: rocblas_stride, col_stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, row_stride_d: rocblas_stride, col_stride_d: rocblas_stride, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>, pub rocblas_trsm_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_trsm_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_trsm_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, stride_A: rocblas_stride, B: *mut c_void, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, stride_invA: rocblas_stride, compute_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_axpy_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_axpy_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_axpy_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dot_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dotc_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dot_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dotc_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dot_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_dotc_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_nrm2_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_nrm2_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_nrm2_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_rot_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_rot_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_rot_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_scal_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_scal_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_scal_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>, pub rocblas_status_to_string: Result<unsafe extern "C" fn(status: rocblas_status) -> *const c_char, Error>, pub rocblas_initialize: Result<unsafe extern "C" fn(), Error>, pub rocblas_get_version_string: Result<unsafe extern "C" fn(buf: *mut c_char, len: usize) -> rocblas_status, Error>, pub rocblas_get_version_string_size: Result<unsafe extern "C" fn(len: *mut usize) -> rocblas_status, Error>, pub rocblas_start_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle) -> rocblas_status, Error>, pub rocblas_stop_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle, size: *mut usize) -> rocblas_status, Error>, pub rocblas_is_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>, pub rocblas_set_optimal_device_memory_size_impl: Result<unsafe extern "C" fn(handle: rocblas_handle, count: usize, ...) -> rocblas_status, Error>, pub rocblas_device_malloc_alloc: Result<unsafe extern "C" fn(handle: rocblas_handle, res: *mut *mut rocblas_device_malloc_base, count: usize, ...) -> rocblas_status, Error>, pub rocblas_device_malloc_success: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base) -> bool, Error>, pub rocblas_device_malloc_ptr: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base, res: *mut *mut c_void) -> rocblas_status, Error>, pub rocblas_device_malloc_get: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base, index: usize, res: *mut *mut c_void) -> rocblas_status, Error>, pub rocblas_device_malloc_free: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base) -> rocblas_status, Error>, pub rocblas_device_malloc_set_default_memory_size: Result<unsafe extern "C" fn(size: usize), Error>, pub rocblas_get_device_memory_size: Result<unsafe extern "C" fn(handle: rocblas_handle, size: *mut usize) -> rocblas_status, Error>, pub rocblas_set_device_memory_size: Result<unsafe extern "C" fn(handle: rocblas_handle, size: usize) -> rocblas_status, Error>, pub rocblas_set_workspace: Result<unsafe extern "C" fn(handle: rocblas_handle, addr: *mut c_void, size: usize) -> rocblas_status, Error>, pub rocblas_is_managing_device_memory: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>, pub rocblas_is_user_managing_device_memory: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>, pub rocblas_abort: Result<unsafe extern "C" fn() -> !, Error>, /* private fields */
}

Fields§

§rocblas_create_handle: Result<unsafe extern "C" fn(handle: *mut rocblas_handle) -> rocblas_status, Error>§rocblas_destroy_handle: Result<unsafe extern "C" fn(handle: rocblas_handle) -> rocblas_status, Error>§rocblas_set_stream: Result<unsafe extern "C" fn(handle: rocblas_handle, stream: hipStream_t) -> rocblas_status, Error>§rocblas_get_stream: Result<unsafe extern "C" fn(handle: rocblas_handle, stream: *mut hipStream_t) -> rocblas_status, Error>§rocblas_set_pointer_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, pointer_mode: rocblas_pointer_mode) -> rocblas_status, Error>§rocblas_get_pointer_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, pointer_mode: *mut rocblas_pointer_mode) -> rocblas_status, Error>§rocblas_set_int8_type_for_hipblas: Result<unsafe extern "C" fn(handle: rocblas_handle, int8_type: rocblas_int8_type_for_hipblas) -> rocblas_status, Error>§rocblas_get_int8_type_for_hipblas: Result<unsafe extern "C" fn(handle: rocblas_handle, int8_type: *mut rocblas_int8_type_for_hipblas) -> rocblas_status, Error>§rocblas_set_atomics_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, atomics_mode: rocblas_atomics_mode) -> rocblas_status, Error>§rocblas_get_atomics_mode: Result<unsafe extern "C" fn(handle: rocblas_handle, atomics_mode: *mut rocblas_atomics_mode) -> rocblas_status, Error>§rocblas_query_int8_layout_flag: Result<unsafe extern "C" fn(handle: rocblas_handle, flag: *mut rocblas_gemm_flags) -> rocblas_status, Error>§rocblas_pointer_to_mode: Result<unsafe extern "C" fn(ptr: *mut c_void) -> rocblas_pointer_mode, Error>§rocblas_set_vector: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int) -> rocblas_status, Error>§rocblas_get_vector: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int) -> rocblas_status, Error>§rocblas_set_matrix: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_get_matrix: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_set_vector_async: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>§rocblas_get_vector_async: Result<unsafe extern "C" fn(n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>§rocblas_set_matrix_async: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>§rocblas_get_matrix_async: Result<unsafe extern "C" fn(rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t) -> rocblas_status, Error>§rocblas_set_start_stop_events: Result<unsafe extern "C" fn(handle: rocblas_handle, startEvent: hipEvent_t, stopEvent: hipEvent_t) -> rocblas_status, Error>§rocblas_set_solution_fitness_query: Result<unsafe extern "C" fn(handle: rocblas_handle, fitness: *mut f64) -> rocblas_status, Error>§rocblas_set_performance_metric: Result<unsafe extern "C" fn(handle: rocblas_handle, metric: rocblas_performance_metric) -> rocblas_status, Error>§rocblas_get_performance_metric: Result<unsafe extern "C" fn(handle: rocblas_handle, metric: *mut rocblas_performance_metric) -> rocblas_status, Error>§rocblas_sscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_cscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_zscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_csscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_zdscal: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_sscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdscal_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdscal_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_scopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dcopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_ccopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zcopy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_scopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dcopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ccopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zcopy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_scopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dcopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ccopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zcopy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_ddot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_hdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, y: *const rocblas_half, incy: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>§rocblas_bfdot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, y: *const rocblas_bfloat16, incy: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>§rocblas_cdotu: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotu: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_cdotc: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotc: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_sdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, batch_count: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_ddot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, batch_count: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_hdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_half, incx: rocblas_int, y: *const *const rocblas_half, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>§rocblas_bfdot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_bfloat16, incx: rocblas_int, y: *const *const rocblas_bfloat16, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>§rocblas_cdotu_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotu_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_cdotc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_sdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_ddot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_hdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_half) -> rocblas_status, Error>§rocblas_bfdot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_bfloat16, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_bfloat16) -> rocblas_status, Error>§rocblas_cdotu_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotu_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_cdotc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zdotc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_sswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_cswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zswap: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_sswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zswap_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zswap_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_saxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_daxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_haxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, y: *mut rocblas_half, incy: rocblas_int) -> rocblas_status, Error>§rocblas_caxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zaxpy: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_haxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const *const rocblas_half, incx: rocblas_int, y: *const *mut rocblas_half, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_saxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_daxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_caxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zaxpy_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_haxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_saxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_daxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_caxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zaxpy_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_dasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_scasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_dzasum: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_sasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_scasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dzasum_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_sasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_scasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dzasum_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_snrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_dnrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_scnrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32) -> rocblas_status, Error>§rocblas_dznrm2: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64) -> rocblas_status, Error>§rocblas_snrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dnrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_scnrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dznrm2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_snrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dnrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_scnrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32) -> rocblas_status, Error>§rocblas_dznrm2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64) -> rocblas_status, Error>§rocblas_isamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamax: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_isamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamax_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_isamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamax_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_isamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamin: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_isamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamin_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_isamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_idamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_icamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_izamin_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int) -> rocblas_status, Error>§rocblas_srot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, c: *const f32, s: *const f32) -> rocblas_status, Error>§rocblas_drot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, c: *const f64, s: *const f64) -> rocblas_status, Error>§rocblas_crot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex) -> rocblas_status, Error>§rocblas_csrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32) -> rocblas_status, Error>§rocblas_zrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex) -> rocblas_status, Error>§rocblas_zdrot: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64) -> rocblas_status, Error>§rocblas_srot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_crot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdrot_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_crot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdrot_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f32, b: *mut f32, c: *mut f32, s: *mut f32) -> rocblas_status, Error>§rocblas_drotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f64, b: *mut f64, c: *mut f64, s: *mut f64) -> rocblas_status, Error>§rocblas_crotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_float_complex, b: *mut rocblas_float_complex, c: *mut f32, s: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zrotg: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_double_complex, b: *mut rocblas_double_complex, c: *mut f64, s: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_srotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut f32, b: *const *mut f32, c: *const *mut f32, s: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut f64, b: *const *mut f64, c: *const *mut f64, s: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_crotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut rocblas_float_complex, b: *const *mut rocblas_float_complex, c: *const *mut f32, s: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zrotg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *const *mut rocblas_double_complex, b: *const *mut rocblas_double_complex, c: *const *mut f64, s: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f32, stride_a: rocblas_stride, b: *mut f32, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut f32, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut f64, stride_a: rocblas_stride, b: *mut f64, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut f64, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_crotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_float_complex, stride_a: rocblas_stride, b: *mut rocblas_float_complex, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut rocblas_float_complex, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zrotg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, a: *mut rocblas_double_complex, stride_a: rocblas_stride, b: *mut rocblas_double_complex, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut rocblas_double_complex, stride_s: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotm: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, param: *const f32) -> rocblas_status, Error>§rocblas_drotm: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, param: *const f64) -> rocblas_status, Error>§rocblas_srotm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, param: *const *const f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, param: *const *const f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, param: *const f32, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, param: *const f64, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotmg: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f32, d2: *mut f32, x1: *mut f32, y1: *const f32, param: *mut f32) -> rocblas_status, Error>§rocblas_drotmg: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f64, d2: *mut f64, x1: *mut f64, y1: *const f64, param: *mut f64) -> rocblas_status, Error>§rocblas_srotmg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *const *mut f32, d2: *const *mut f32, x1: *const *mut f32, y1: *const *const f32, param: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotmg_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *const *mut f64, d2: *const *mut f64, x1: *const *mut f64, y1: *const *const f64, param: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_srotmg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f32, stride_d1: rocblas_stride, d2: *mut f32, stride_d2: rocblas_stride, x1: *mut f32, stride_x1: rocblas_stride, y1: *const f32, stride_y1: rocblas_stride, param: *mut f32, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_drotmg_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, d1: *mut f64, stride_d1: rocblas_stride, d2: *mut f64, stride_d2: rocblas_stride, x1: *mut f64, stride_x1: rocblas_stride, y1: *const f64, stride_y1: rocblas_stride, param: *mut f64, stride_param: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_cgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zgbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_sgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_cgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zgemv: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_sgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zhbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_chbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chemv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zhemv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_chemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhemv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhemv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zher: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_cher_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zher2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_cher2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zhpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_chpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zhpr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_chpr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zhpr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_chpr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chpr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhpr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_strmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztpmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_stpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztpmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztpmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_stbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztbsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_stbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztbsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztbsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_strsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, x: *mut f32, incx: rocblas_int) -> rocblas_status, Error>§rocblas_dtpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, x: *mut f64, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ctpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_ztpsv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int) -> rocblas_status, Error>§rocblas_stpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztpsv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_stpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztpsv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dsymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_csymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_zsymv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int) -> rocblas_status, Error>§rocblas_ssymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsymv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsymv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dspmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_sspmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dsbmv: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int) -> rocblas_status, Error>§rocblas_dsbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssbmv_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsbmv_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sger: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>§rocblas_dger: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>§rocblas_cgeru: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zgeru: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_cgerc: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zgerc: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_sger_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dger_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgeru_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgeru_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgerc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgerc_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sger_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dger_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgeru_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgeru_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgerc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgerc_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, AP: *mut f32) -> rocblas_status, Error>§rocblas_dspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, AP: *mut f64) -> rocblas_status, Error>§rocblas_cspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex) -> rocblas_status, Error>§rocblas_zspr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex) -> rocblas_status, Error>§rocblas_sspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zspr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zspr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, AP: *mut f32) -> rocblas_status, Error>§rocblas_dspr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, AP: *mut f64) -> rocblas_status, Error>§rocblas_sspr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sspr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, y: *const f32, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dspr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, y: *const f64, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>§rocblas_csyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chemm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zhemm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_chemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_chemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zhemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cherk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zherk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cherk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zherk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cherk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zherk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zher2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cher2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cher2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zher2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cherkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zherkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cherkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zherkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cherkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zherkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dsymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_csymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zsymm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ssymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsymm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsymm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_csyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrk: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrk_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrk_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2k: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2k_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyr2k_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_csyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrkx: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrkx_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ssyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dsyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_csyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zsyrkx_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_strmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm_outofplace: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_strmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm_outofplace_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrmm_outofplace_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, invA: *mut f32, ldinvA: rocblas_int) -> rocblas_status, Error>§rocblas_dtrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, invA: *mut f64, ldinvA: rocblas_int) -> rocblas_status, Error>§rocblas_ctrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, invA: *mut rocblas_float_complex, ldinvA: rocblas_int) -> rocblas_status, Error>§rocblas_ztrtri: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, invA: *mut rocblas_double_complex, ldinvA: rocblas_int) -> rocblas_status, Error>§rocblas_strtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f32, lda: rocblas_int, invA: *const *mut f32, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f64, lda: rocblas_int, invA: *const *mut f64, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, invA: *const *mut rocblas_float_complex, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrtri_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, invA: *const *mut rocblas_double_complex, ldinvA: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f32, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f64, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_float_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrtri_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_double_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int) -> rocblas_status, Error>§rocblas_strsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_strsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dtrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ctrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ztrsm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_hgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, B: *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zgemm: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_sgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_hgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const *const rocblas_half, lda: rocblas_int, B: *const *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *const *mut rocblas_half, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgemm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_hgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_hgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgemm_kernel_name: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgemm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_ddgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zdgmm: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_sdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ddgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdgmm_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_ddgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zdgmm_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_dgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_cgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_zgeam: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int) -> rocblas_status, Error>§rocblas_sgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgeam_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_sgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_dgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_cgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_zgeam_strided_batched: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int) -> rocblas_status, Error>§rocblas_gemm_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>§rocblas_gemm_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>§rocblas_gemm_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, stride_d: rocblas_stride, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>§rocblas_gemm_ext2: Result<unsafe extern "C" fn(handle: rocblas_handle, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, row_stride_a: rocblas_stride, col_stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, row_stride_b: rocblas_stride, col_stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, row_stride_c: rocblas_stride, col_stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, row_stride_d: rocblas_stride, col_stride_d: rocblas_stride, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32) -> rocblas_status, Error>§rocblas_trsm_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_trsm_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_trsm_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, stride_A: rocblas_stride, B: *mut c_void, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, stride_invA: rocblas_stride, compute_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_axpy_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_axpy_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_axpy_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dot_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dotc_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dot_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dotc_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dot_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_dotc_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_nrm2_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_nrm2_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_nrm2_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_rot_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_rot_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_rot_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_scal_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_scal_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_scal_strided_batched_ex: Result<unsafe extern "C" fn(handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype) -> rocblas_status, Error>§rocblas_status_to_string: Result<unsafe extern "C" fn(status: rocblas_status) -> *const c_char, Error>§rocblas_initialize: Result<unsafe extern "C" fn(), Error>§rocblas_get_version_string: Result<unsafe extern "C" fn(buf: *mut c_char, len: usize) -> rocblas_status, Error>§rocblas_get_version_string_size: Result<unsafe extern "C" fn(len: *mut usize) -> rocblas_status, Error>§rocblas_start_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle) -> rocblas_status, Error>§rocblas_stop_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle, size: *mut usize) -> rocblas_status, Error>§rocblas_is_device_memory_size_query: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>§rocblas_set_optimal_device_memory_size_impl: Result<unsafe extern "C" fn(handle: rocblas_handle, count: usize, ...) -> rocblas_status, Error>§rocblas_device_malloc_alloc: Result<unsafe extern "C" fn(handle: rocblas_handle, res: *mut *mut rocblas_device_malloc_base, count: usize, ...) -> rocblas_status, Error>§rocblas_device_malloc_success: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base) -> bool, Error>§rocblas_device_malloc_ptr: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base, res: *mut *mut c_void) -> rocblas_status, Error>§rocblas_device_malloc_get: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base, index: usize, res: *mut *mut c_void) -> rocblas_status, Error>§rocblas_device_malloc_free: Result<unsafe extern "C" fn(ptr: *mut rocblas_device_malloc_base) -> rocblas_status, Error>§rocblas_device_malloc_set_default_memory_size: Result<unsafe extern "C" fn(size: usize), Error>§rocblas_get_device_memory_size: Result<unsafe extern "C" fn(handle: rocblas_handle, size: *mut usize) -> rocblas_status, Error>§rocblas_set_device_memory_size: Result<unsafe extern "C" fn(handle: rocblas_handle, size: usize) -> rocblas_status, Error>§rocblas_set_workspace: Result<unsafe extern "C" fn(handle: rocblas_handle, addr: *mut c_void, size: usize) -> rocblas_status, Error>§rocblas_is_managing_device_memory: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>§rocblas_is_user_managing_device_memory: Result<unsafe extern "C" fn(handle: rocblas_handle) -> bool, Error>§rocblas_abort: Result<unsafe extern "C" fn() -> !, Error>

Implementations§

source§

impl rocblas

source

pub unsafe fn new<P>(path: P) -> Result<Self, Error>where P: AsRef<OsStr>,

source

pub unsafe fn from_library<L>(library: L) -> Result<Self, Error>where L: Into<Library>,

source

pub unsafe fn rocblas_create_handle( &self, handle: *mut rocblas_handle ) -> rocblas_status

\brief Create handle

source

pub unsafe fn rocblas_destroy_handle( &self, handle: rocblas_handle ) -> rocblas_status

\brief Destroy handle

source

pub unsafe fn rocblas_set_stream( &self, handle: rocblas_handle, stream: hipStream_t ) -> rocblas_status

\brief Set stream for handle

source

pub unsafe fn rocblas_get_stream( &self, handle: rocblas_handle, stream: *mut hipStream_t ) -> rocblas_status

\brief Get stream [0] from handle

source

pub unsafe fn rocblas_set_pointer_mode( &self, handle: rocblas_handle, pointer_mode: rocblas_pointer_mode ) -> rocblas_status

\brief Set rocblas_pointer_mode

source

pub unsafe fn rocblas_get_pointer_mode( &self, handle: rocblas_handle, pointer_mode: *mut rocblas_pointer_mode ) -> rocblas_status

\brief Get rocblas_pointer_mode

source

pub unsafe fn rocblas_set_int8_type_for_hipblas( &self, handle: rocblas_handle, int8_type: rocblas_int8_type_for_hipblas ) -> rocblas_status

\brief Set rocblas_int8_type_for_hipblas

source

pub unsafe fn rocblas_get_int8_type_for_hipblas( &self, handle: rocblas_handle, int8_type: *mut rocblas_int8_type_for_hipblas ) -> rocblas_status

\brief Get rocblas_int8_type_for_hipblas

source

pub unsafe fn rocblas_set_atomics_mode( &self, handle: rocblas_handle, atomics_mode: rocblas_atomics_mode ) -> rocblas_status

\brief Set rocblas_atomics_mode

source

pub unsafe fn rocblas_get_atomics_mode( &self, handle: rocblas_handle, atomics_mode: *mut rocblas_atomics_mode ) -> rocblas_status

\brief Get rocblas_atomics_mode

source

pub unsafe fn rocblas_query_int8_layout_flag( &self, handle: rocblas_handle, flag: *mut rocblas_gemm_flags ) -> rocblas_status

\brief Query the preferable supported int8 input layout for gemm \details Indicates the supported int8 input layout for gemm according to the device. If the device supports packed-int8x4 (1) only, output flag is rocblas_gemm_flags_pack_int8x4 and users must bitwise-or your flag with rocblas_gemm_flags_pack_int8x4. If output flag is rocblas_gemm_flags_none (0), then unpacked int8 is preferable and suggested. @param[in] handle rocblas_handle the handle of device @param[out] flag pointer to rocblas_gemm_flags

source

pub unsafe fn rocblas_pointer_to_mode( &self, ptr: *mut c_void ) -> rocblas_pointer_mode

\brief Indicates whether the pointer is on the host or device.

source

pub unsafe fn rocblas_set_vector( &self, n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int ) -> rocblas_status

\brief Copy vector from host to device @param[in] n rocblas_int number of elements in the vector @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] x pointer to vector on the host @param[in] incx rocblas_int specifies the increment for the elements of the vector @param[out] y pointer to vector on the device @param[in] incy rocblas_int specifies the increment for the elements of the vector

source

pub unsafe fn rocblas_get_vector( &self, n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int ) -> rocblas_status

\brief Copy vector from device to host @param[in] n rocblas_int number of elements in the vector @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] x pointer to vector on the device @param[in] incx rocblas_int specifies the increment for the elements of the vector @param[out] y pointer to vector on the host @param[in] incy rocblas_int specifies the increment for the elements of the vector

source

pub unsafe fn rocblas_set_matrix( &self, rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int ) -> rocblas_status

\brief Copy matrix from host to device @param[in] rows rocblas_int number of rows in matrices @param[in] cols rocblas_int number of columns in matrices @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] a pointer to matrix on the host @param[in] lda rocblas_int specifies the leading dimension of A, lda >= rows @param[out] b pointer to matrix on the GPU @param[in] ldb rocblas_int specifies the leading dimension of B, ldb >= rows

source

pub unsafe fn rocblas_get_matrix( &self, rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int ) -> rocblas_status

\brief Copy matrix from device to host @param[in] rows rocblas_int number of rows in matrices @param[in] cols rocblas_int number of columns in matrices @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] a pointer to matrix on the GPU @param[in] lda rocblas_int specifies the leading dimension of A, lda >= rows @param[out] b pointer to matrix on the host @param[in] ldb rocblas_int specifies the leading dimension of B, ldb >= rows

source

pub unsafe fn rocblas_set_vector_async( &self, n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t ) -> rocblas_status

\brief Asynchronously copy vector from host to device \details rocblas_set_vector_async copies a vector from pinned host memory to device memory asynchronously. Memory on the host must be allocated with hipHostMalloc or the transfer will be synchronous. @param[in] n rocblas_int number of elements in the vector @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] x pointer to vector on the host @param[in] incx rocblas_int specifies the increment for the elements of the vector @param[out] y pointer to vector on the device @param[in] incy rocblas_int specifies the increment for the elements of the vector @param[in] stream specifies the stream into which this transfer request is queued

source

pub unsafe fn rocblas_get_vector_async( &self, n: rocblas_int, elem_size: rocblas_int, x: *const c_void, incx: rocblas_int, y: *mut c_void, incy: rocblas_int, stream: hipStream_t ) -> rocblas_status

\brief Asynchronously copy vector from device to host \details rocblas_get_vector_async copies a vector from pinned host memory to device memory asynchronously. Memory on the host must be allocated with hipHostMalloc or the transfer will be synchronous. @param[in] n rocblas_int number of elements in the vector @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] x pointer to vector on the device @param[in] incx rocblas_int specifies the increment for the elements of the vector @param[out] y pointer to vector on the host @param[in] incy rocblas_int specifies the increment for the elements of the vector @param[in] stream specifies the stream into which this transfer request is queued

source

pub unsafe fn rocblas_set_matrix_async( &self, rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t ) -> rocblas_status

\brief Asynchronously copy matrix from host to device \details rocblas_set_matrix_async copies a matrix from pinned host memory to device memory asynchronously. Memory on the host must be allocated with hipHostMalloc or the transfer will be synchronous. @param[in] rows rocblas_int number of rows in matrices @param[in] cols rocblas_int number of columns in matrices @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] a pointer to matrix on the host @param[in] lda rocblas_int specifies the leading dimension of A, lda >= rows @param[out] b pointer to matrix on the GPU @param[in] ldb rocblas_int specifies the leading dimension of B, ldb >= rows @param[in] stream specifies the stream into which this transfer request is queued

source

pub unsafe fn rocblas_get_matrix_async( &self, rows: rocblas_int, cols: rocblas_int, elem_size: rocblas_int, a: *const c_void, lda: rocblas_int, b: *mut c_void, ldb: rocblas_int, stream: hipStream_t ) -> rocblas_status

\brief asynchronously copy matrix from device to host \details rocblas_get_matrix_async copies a matrix from device memory to pinned host memory asynchronously. Memory on the host must be allocated with hipHostMalloc or the transfer will be synchronous. @param[in] rows rocblas_int number of rows in matrices @param[in] cols rocblas_int number of columns in matrices @param[in] elem_size rocblas_int number of bytes per element in the matrix @param[in] a pointer to matrix on the GPU @param[in] lda rocblas_int specifies the leading dimension of A, lda >= rows @param[out] b pointer to matrix on the host @param[in] ldb rocblas_int specifies the leading dimension of B, ldb >= rows @param[in] stream specifies the stream into which this transfer request is queued

source

pub unsafe fn rocblas_set_start_stop_events( &self, handle: rocblas_handle, startEvent: hipEvent_t, stopEvent: hipEvent_t ) -> rocblas_status

Function to set start/stop event handlers (for internal use only)

source

pub unsafe fn rocblas_set_solution_fitness_query( &self, handle: rocblas_handle, fitness: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_set_performance_metric( &self, handle: rocblas_handle, metric: rocblas_performance_metric ) -> rocblas_status

\brief specifies the performance metric that solution selection uses \details Determines which performance metric will be used by Tensile when selecting the optimal solution for gemm problems. If a valid solution benchmarked for this performance metric does not exist for a problem, Tensile will default to a solution benchmarked for overall performance instead. @param[in] handle rocblas_handle the handle of device @param[in] metric rocblas_performance_metric the performance metric to be used

source

pub unsafe fn rocblas_get_performance_metric( &self, handle: rocblas_handle, metric: *mut rocblas_performance_metric ) -> rocblas_status

\brief returns the performance metric being used for solution selection \details Returns the performance metric used by Tensile to select the optimal solution for gemm problems. @param[in] handle rocblas_handle the handle of device @param[out] metric [rocblas_performance_metric*] pointer to where the metric will be stored

source

pub unsafe fn rocblas_sscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details scal scales each element of vector x with scalar alpha:

x := alpha * x

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] alpha device pointer or host pointer for the scalar alpha. @param[inout] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdscal( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details scal_batched scales each element of vector x_i with scalar alpha, for i = 1, … , batch_count:

x_i := alpha * x_i, where (x_i) is the i-th instance of the batch.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i. @param[in] alpha host pointer or device pointer for the scalar alpha. @param[inout] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] batch_count rocblas_int specifies the number of batches in x.

source

pub unsafe fn rocblas_dscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdscal_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details scal_strided_batched scales each element of vector x_i with scalar alpha, for i = 1, … , batch_count:

x_i := alpha * x_i, where (x_i) is the i-th instance of the batch.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i. @param[in] alpha host pointer or device pointer for the scalar alpha. @param[inout] x device pointer to the first vector (x_1) in the batch. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size, for a typical case this means stride_x >= n * incx. @param[in] batch_count rocblas_int specifies the number of batches in x.

source

pub unsafe fn rocblas_dscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdscal_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_scopy( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details copy copies each element x[i] into y[i], for i = 1 , … , n:

y := x

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x to be copied to y. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[out] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_dcopy( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ccopy( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zcopy( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_scopy_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details copy_batched copies each element x_i[j] into y_i[j], for j = 1 , … , n; i = 1 , … , batch_count:

y_i := x_i, where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i to be copied to y_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[out] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dcopy_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ccopy_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zcopy_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_scopy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details copy_strided_batched copies each element x_i[j] into y_i[j], for j = 1 , … , n; i = 1 , … , batch_count:

y_i := x_i, where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i to be copied to y_i. @param[in] x device pointer to the first vector (x_1) in the batch. @param[in] incx rocblas_int specifies the increments for the elements of vectors x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, the user should take care to ensure that stride_x is of appropriate size. For a typical case, this means stride_x >= n * incx. @param[out] y device pointer to the first vector (y_1) in the batch. @param[in] incy rocblas_int specifies the increment for the elements of vectors y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stride_y, However, ensure that stride_y is of appropriate size, for a typical case this means stride_y >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dcopy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ccopy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zcopy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sdot( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, result: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details dot(u) performs the dot product of vectors x and y:

result = x * y;

dotc performs the dot product of the conjugate of complex vector x and complex vector y.

result = conjugate (x) * y;

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] result device pointer or host pointer to store the dot product. return is 0.0 if n <= 0.

source

pub unsafe fn rocblas_ddot( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_hdot( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, y: *const rocblas_half, incy: rocblas_int, result: *mut rocblas_half ) -> rocblas_status

source

pub unsafe fn rocblas_bfdot( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, y: *const rocblas_bfloat16, incy: rocblas_int, result: *mut rocblas_bfloat16 ) -> rocblas_status

source

pub unsafe fn rocblas_cdotu( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotu( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_cdotc( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotc( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_sdot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, batch_count: rocblas_int, result: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details dot_batched(u) performs a batch of dot products of vectors x and y:

result_i = x_i * y_i;

dotc_batched performs a batch of dot products of the conjugate of complex vector x and complex vector y

result_i = conjugate (x_i) * y_i; where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] batch_count rocblas_int number of instances in the batch. @param[inout] result device array or host array of batch_count size to store the dot products of each batch. return 0.0 for each element if n <= 0.

source

pub unsafe fn rocblas_ddot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, batch_count: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_hdot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_half, incx: rocblas_int, y: *const *const rocblas_half, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_half ) -> rocblas_status

source

pub unsafe fn rocblas_bfdot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_bfloat16, incx: rocblas_int, y: *const *const rocblas_bfloat16, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_bfloat16 ) -> rocblas_status

source

pub unsafe fn rocblas_cdotu_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotu_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_cdotc_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotc_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_sdot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details dot_strided_batched(u) performs a batch of dot products of vectors x and y:

result_i = x_i * y_i;

dotc_strided_batched performs a batch of dot products of the conjugate of complex vector x and complex vector y

result_i = conjugate (x_i) * y_i; where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] x device pointer to the first vector (x_1) in the batch. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] y device pointer to the first vector (y_1) in the batch. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[in] batch_count rocblas_int number of instances in the batch. @param[inout] result device array or host array of batch_count size to store the dot products of each batch. return 0.0 for each element if n <= 0.

source

pub unsafe fn rocblas_ddot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_hdot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_half ) -> rocblas_status

source

pub unsafe fn rocblas_bfdot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_bfloat16, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_bfloat16, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_bfloat16 ) -> rocblas_status

source

pub unsafe fn rocblas_cdotu_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotu_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_cdotc_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdotc_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_sswap( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details swap interchanges vectors x and y:

y := x; x := y

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[inout] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_dswap( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cswap( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zswap( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sswap_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details swap_batched interchanges vectors x_i and y_i, for i = 1 , … , batch_count:

y_i := x_i; x_i := y_i

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[inout] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dswap_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cswap_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zswap_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sswap_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details swap_strided_batched interchanges vectors x_i and y_i, for i = 1 , … , batch_count:

y_i := x_i; x_i := y_i

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[inout] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. For a typical case this means stride_x >= n * incx. @param[inout] y device pointer to the first vector y_1. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stride_x. However, ensure that stride_y is of appropriate size. For a typical case this means stride_y >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dswap_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cswap_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zswap_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_saxpy( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details axpy computes constant alpha multiplied by vector x, plus vector y:

y := alpha * x + y

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[in] alpha device pointer or host pointer to specify the scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[out] y device pointer storing vector y. @param[inout] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_daxpy( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_haxpy( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, y: *mut rocblas_half, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_caxpy( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zaxpy( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_haxpy_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const *const rocblas_half, incx: rocblas_int, y: *const *mut rocblas_half, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details axpy_batched compute y := alpha * x + y over a set of batched vectors.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int @param[in] alpha specifies the scalar alpha. @param[in] x pointer storing vector x on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[out] y pointer storing vector y on the GPU. @param[inout] incy rocblas_int specifies the increment for the elements of y.

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_saxpy_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_daxpy_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_caxpy_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zaxpy_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_haxpy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_half, x: *const rocblas_half, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_half, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details axpy_strided_batched compute y := alpha * x + y over a set of strided batched vectors.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int. @param[in] alpha specifies the scalar alpha. @param[in] x pointer storing vector x on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] stridex rocblas_stride specifies the increment between vectors of x. @param[out] y pointer storing vector y on the GPU. @param[inout] incy rocblas_int specifies the increment for the elements of y. @param[in] stridey rocblas_stride specifies the increment between vectors of y.

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_saxpy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_daxpy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_caxpy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zaxpy_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sasum( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details asum computes the sum of the magnitudes of elements of a real vector x, or the sum of magnitudes of the real and imaginary parts of elements if x is a complex vector.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. incx must be > 0. @param[inout] result device pointer or host pointer to store the asum product. return is 0.0 if n <= 0.

source

pub unsafe fn rocblas_dasum( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scasum( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dzasum( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_sasum_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details asum_batched computes the sum of the magnitudes of the elements in a batch of real vectors x_i, or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex vector, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[out] results device array or host array of batch_count size for results. return is 0.0 if n, incx<=0. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dasum_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scasum_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dzasum_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_sasum_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details asum_strided_batched computes the sum of the magnitudes of elements of a real vectors x_i, or the sum of magnitudes of the real and imaginary parts of elements if x_i is a complex vector, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. For a typical case this means stride_x >= n * incx. @param[out] results device pointer or host pointer to array for storing contiguous batch_count results. return is 0.0 if n, incx<=0. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dasum_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scasum_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dzasum_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_snrm2( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details nrm2 computes the euclidean norm of a real or complex vector:

result := sqrt( x’x ) for real vectors result := sqrt( x**Hx ) for complex vectors

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[inout] result device pointer or host pointer to store the nrm2 product. return is 0.0 if n, incx<=0.

source

pub unsafe fn rocblas_dnrm2( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scnrm2( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dznrm2( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_snrm2_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details nrm2_batched computes the euclidean norm over a batch of real or complex vectors:

result := sqrt( x_i’x_i ) for real vectors x, for i = 1, …, batch_count result := sqrt( x_i**Hx_i ) for complex vectors x, for i = 1, …, batch_count

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] batch_count rocblas_int number of instances in the batch. @param[out] results device pointer or host pointer to array of batch_count size for nrm2 results. return is 0.0 for each element if n <= 0, incx<=0.

source

pub unsafe fn rocblas_dnrm2_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scnrm2_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dznrm2_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_snrm2_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details nrm2_strided_batched computes the euclidean norm over a batch of real or complex vectors:

result := sqrt( x_i’x_i ) for real vectors x, for i = 1, …, batch_count result := sqrt( x_i**Hx_i ) for complex vectors, for i = 1, …, batch_count

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. For a typical case this means stride_x >= n * incx. @param[in] batch_count rocblas_int number of instances in the batch. @param[out] results device pointer or host pointer to array for storing contiguous batch_count results. return is 0.0 for each element if n <= 0, incx<=0.

source

pub unsafe fn rocblas_dnrm2_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_scnrm2_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f32 ) -> rocblas_status

source

pub unsafe fn rocblas_dznrm2_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, results: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_isamax( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amax finds the first index of the element of maximum magnitude of a vector x.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[inout] result device pointer or host pointer to store the amax index. return is 0.0 if n, incx<=0.

source

pub unsafe fn rocblas_idamax( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamax( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamax( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_isamax_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amax_batched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] batch_count rocblas_int number of instances in the batch. Must be > 0. @param[out] result device or host array of pointers of batch_count size for results. return is 0 if n, incx<=0.

source

pub unsafe fn rocblas_idamax_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamax_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamax_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_isamax_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amax_strided_batched finds the first index of the element of maximum magnitude of each vector x_i in a batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] stridex rocblas_stride specifies the pointer increment between one x_i and the next x_(i + 1). @param[in] batch_count rocblas_int number of instances in the batch. @param[out] result device or host pointer for storing contiguous batch_count results. return is 0 if n <= 0, incx<=0.

source

pub unsafe fn rocblas_idamax_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamax_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamax_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_isamin( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amin finds the first index of the element of minimum magnitude of a vector x.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[inout] result device pointer or host pointer to store the amin index. return is 0.0 if n, incx<=0.

source

pub unsafe fn rocblas_idamin( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamin( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamin( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_isamin_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f32, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amin_batched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] batch_count rocblas_int number of instances in the batch. Must be > 0. @param[out] result device or host pointers to array of batch_count size for results. return is 0 if n, incx<=0.

source

pub unsafe fn rocblas_idamin_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const f64, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamin_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamin_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_isamin_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details amin_strided_batched finds the first index of the element of minimum magnitude of each vector x_i in a batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each vector x_i. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] stridex rocblas_stride specifies the pointer increment between one x_i and the next x_(i + 1). @param[in] batch_count rocblas_int number of instances in the batch. @param[out] result device or host pointer to array for storing contiguous batch_count results. return is 0 if n <= 0, incx<=0.

source

pub unsafe fn rocblas_idamin_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_icamin_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_izamin_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, result: *mut rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, c: *const f32, s: *const f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rot applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to vectors x and y. Scalars c and s may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in the x and y vectors. @param[inout] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment between elements of x. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment between elements of y. @param[in] c device pointer or host pointer storing scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer storing scalar sine component of the rotation matrix.

source

pub unsafe fn rocblas_drot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, c: *const f64, s: *const f64 ) -> rocblas_status

source

pub unsafe fn rocblas_crot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_csrot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, y: *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32 ) -> rocblas_status

source

pub unsafe fn rocblas_zrot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zdrot( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, y: *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64 ) -> rocblas_status

source

pub unsafe fn rocblas_srot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rot_batched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to batched vectors x_i and y_i, for i = 1, …, batch_count. Scalars c and s may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i and y_i vectors. @param[inout] x device array of deivce pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] c device pointer or host pointer to scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer to scalar sine component of the rotation matrix. @param[in] batch_count rocblas_int the number of x and y arrays, i.e. the number of batches.

source

pub unsafe fn rocblas_drot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_crot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csrot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, y: *const *mut rocblas_float_complex, incy: rocblas_int, c: *const f32, s: *const f32, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zrot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdrot_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, y: *const *mut rocblas_double_complex, incy: rocblas_int, c: *const f64, s: *const f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rot_strided_batched applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to strided batched vectors x_i and y_i, for i = 1, …, batch_count. Scalars c and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i and y_i vectors. @param[inout] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[in] stride_x rocblas_stride specifies the increment from the beginning of x_i to the beginning of x_(i+1). @param[inout] y device pointer to the first vector y_1. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] stride_y rocblas_stride specifies the increment from the beginning of y_i to the beginning of y_(i+1) @param[in] c device pointer or host pointer to scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer to scalar sine component of the rotation matrix. @param[in] batch_count rocblas_int the number of x and y arrays, i.e. the number of batches.

source

pub unsafe fn rocblas_drot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_crot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csrot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f32, s: *const f32, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zrot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdrot_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, c: *const f64, s: *const f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotg( &self, handle: rocblas_handle, a: *mut f32, b: *mut f32, c: *mut f32, s: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotg creates the Givens rotation matrix for the vector (a b). Scalars c and s and arrays a and b may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] a device pointer or host pointer to input vector element, overwritten with r. @param[inout] b device pointer or host pointer to input vector element, overwritten with z. @param[inout] c device pointer or host pointer to cosine element of Givens rotation. @param[inout] s device pointer or host pointer sine element of Givens rotation.

source

pub unsafe fn rocblas_drotg( &self, handle: rocblas_handle, a: *mut f64, b: *mut f64, c: *mut f64, s: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_crotg( &self, handle: rocblas_handle, a: *mut rocblas_float_complex, b: *mut rocblas_float_complex, c: *mut f32, s: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zrotg( &self, handle: rocblas_handle, a: *mut rocblas_double_complex, b: *mut rocblas_double_complex, c: *mut f64, s: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_srotg_batched( &self, handle: rocblas_handle, a: *const *mut f32, b: *const *mut f32, c: *const *mut f32, s: *const *mut f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotg_batched creates the Givens rotation matrix for the batched vectors (a_i b_i), for i = 1, …, batch_count. a, b, c, and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] a device array of device pointers storing each single input vector element a_i, overwritten with r_i. @param[inout] b device array of device pointers storing each single input vector element b_i, overwritten with z_i. @param[inout] c device array of device pointers storing each cosine element of Givens rotation for the batch. @param[inout] s device array of device pointers storing each sine element of Givens rotation for the batch. @param[in] batch_count rocblas_int number of batches (length of arrays a, b, c, and s).

source

pub unsafe fn rocblas_drotg_batched( &self, handle: rocblas_handle, a: *const *mut f64, b: *const *mut f64, c: *const *mut f64, s: *const *mut f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_crotg_batched( &self, handle: rocblas_handle, a: *const *mut rocblas_float_complex, b: *const *mut rocblas_float_complex, c: *const *mut f32, s: *const *mut rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zrotg_batched( &self, handle: rocblas_handle, a: *const *mut rocblas_double_complex, b: *const *mut rocblas_double_complex, c: *const *mut f64, s: *const *mut rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotg_strided_batched( &self, handle: rocblas_handle, a: *mut f32, stride_a: rocblas_stride, b: *mut f32, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut f32, stride_s: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotg_strided_batched creates the Givens rotation matrix for the strided batched vectors (a_i b_i), for i = 1, …, batch_count. a, b, c, and s may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] a device strided_batched pointer or host strided_batched pointer to first single input vector element a_1, overwritten with r. @param[in] stride_a rocblas_stride distance between elements of a in batch (distance between a_i and a_(i + 1)). @param[inout] b device strided_batched pointer or host strided_batched pointer to first single input vector element b_1, overwritten with z. @param[in] stride_b rocblas_stride distance between elements of b in batch (distance between b_i and b_(i + 1)). @param[inout] c device strided_batched pointer or host strided_batched pointer to first cosine element of Givens rotations c_1. @param[in] stride_c rocblas_stride distance between elements of c in batch (distance between c_i and c_(i + 1)). @param[inout] s device strided_batched pointer or host strided_batched pointer to sine element of Givens rotations s_1. @param[in] stride_s rocblas_stride distance between elements of s in batch (distance between s_i and s_(i + 1)). @param[in] batch_count rocblas_int number of batches (length of arrays a, b, c, and s).

source

pub unsafe fn rocblas_drotg_strided_batched( &self, handle: rocblas_handle, a: *mut f64, stride_a: rocblas_stride, b: *mut f64, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut f64, stride_s: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_crotg_strided_batched( &self, handle: rocblas_handle, a: *mut rocblas_float_complex, stride_a: rocblas_stride, b: *mut rocblas_float_complex, stride_b: rocblas_stride, c: *mut f32, stride_c: rocblas_stride, s: *mut rocblas_float_complex, stride_s: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zrotg_strided_batched( &self, handle: rocblas_handle, a: *mut rocblas_double_complex, stride_a: rocblas_stride, b: *mut rocblas_double_complex, stride_b: rocblas_stride, c: *mut f64, stride_c: rocblas_stride, s: *mut rocblas_double_complex, stride_s: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotm( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, y: *mut f32, incy: rocblas_int, param: *const f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotm applies the modified Givens rotation matrix defined by param to vectors x and y.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in the x and y vectors. @param[inout] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment between elements of x. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment between elements of y. @param[in] param device vector or host vector of 5 elements defining the rotation.

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22

The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may be stored in either host or device memory, location is specified by calling rocblas_set_pointer_mode.

source

pub unsafe fn rocblas_drotm( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, y: *mut f64, incy: rocblas_int, param: *const f64 ) -> rocblas_status

source

pub unsafe fn rocblas_srotm_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f32, incx: rocblas_int, y: *const *mut f32, incy: rocblas_int, param: *const *const f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotm_batched applies the modified Givens rotation matrix defined by param_i to batched vectors x_i and y_i, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in the x and y vectors. @param[inout] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[inout] y device array of device pointers storing each vector y_1. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] param device array of device vectors of 5 elements defining the rotation.

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22

The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may ONLY be stored on the device for the batched version of this function.

@param[in] batch_count rocblas_int the number of x and y arrays, i.e. the number of batches.

source

pub unsafe fn rocblas_drotm_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *const *mut f64, incx: rocblas_int, y: *const *mut f64, incy: rocblas_int, param: *const *const f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotm_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, param: *const f32, stride_param: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotm_strided_batched applies the modified Givens rotation matrix defined by param_i to strided batched vectors x_i and y_i, for i = 1, …, batch_count

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in the x and y vectors. @param[inout] x device pointer pointing to first strided batched vector x_1. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[in] stride_x rocblas_stride specifies the increment between the beginning of x_i and x_(i + 1) @param[inout] y device pointer pointing to first strided batched vector y_1. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] stride_y rocblas_stride specifies the increment between the beginning of y_i and y_(i + 1). @param[in] param device pointer pointing to first array of 5 elements defining the rotation (param_1).

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22

The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may ONLY be stored on the device for the strided_batched version of this function.

@param[in] stride_param rocblas_stride specifies the increment between the beginning of param_i and param_(i + 1). @param[in] batch_count rocblas_int the number of x and y arrays, i.e. the number of batches.

source

pub unsafe fn rocblas_drotm_strided_batched( &self, handle: rocblas_handle, n: rocblas_int, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, param: *const f64, stride_param: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotmg( &self, handle: rocblas_handle, d1: *mut f32, d2: *mut f32, x1: *mut f32, y1: *const f32, param: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotmg creates the modified Givens rotation matrix for the vector (d1 * x1, d2 * y1). Parameters may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] d1 device pointer or host pointer to input scalar that is overwritten. @param[inout] d2 device pointer or host pointer to input scalar that is overwritten. @param[inout] x1 device pointer or host pointer to input scalar that is overwritten. @param[in] y1 device pointer or host pointer to input scalar. @param[out] param device vector or host vector of five elements defining the rotation.

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22

The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

source

pub unsafe fn rocblas_drotmg( &self, handle: rocblas_handle, d1: *mut f64, d2: *mut f64, x1: *mut f64, y1: *const f64, param: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_srotmg_batched( &self, handle: rocblas_handle, d1: *const *mut f32, d2: *const *mut f32, x1: *const *mut f32, y1: *const *const f32, param: *const *mut f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotmg_batched creates the modified Givens rotation matrix for the batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, …, batch_count. Parameters may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] d1 device batched array or host batched array of input scalars that is overwritten. @param[inout] d2 device batched array or host batched array of input scalars that is overwritten. @param[inout] x1 device batched array or host batched array of input scalars that is overwritten. @param[in] y1 device batched array or host batched array of input scalars. @param[out] param device batched array or host batched array of vectors of 5 elements defining the rotation.

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22

The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

@param[in] batch_count rocblas_int the number of instances in the batch.

source

pub unsafe fn rocblas_drotmg_batched( &self, handle: rocblas_handle, d1: *const *mut f64, d2: *const *mut f64, x1: *const *mut f64, y1: *const *const f64, param: *const *mut f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_srotmg_strided_batched( &self, handle: rocblas_handle, d1: *mut f32, stride_d1: rocblas_stride, d2: *mut f32, stride_d2: rocblas_stride, x1: *mut f32, stride_x1: rocblas_stride, y1: *const f32, stride_y1: rocblas_stride, param: *mut f32, stride_param: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rotmg_strided_batched creates the modified Givens rotation matrix for the strided batched vectors (d1_i * x1_i, d2_i * y1_i), for i = 1, …, batch_count. Parameters may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode:

  • If the pointer mode is set to rocblas_pointer_mode_host, then this function blocks the CPU until the GPU has finished and the results are available in host memory.
  • If the pointer mode is set to rocblas_pointer_mode_device, then this function returns immediately and synchronization is required to read the results.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[inout] d1 device strided_batched array or host strided_batched array of input scalars that is overwritten. @param[in] stride_d1 rocblas_stride specifies the increment between the beginning of d1_i and d1_(i+1). @param[inout] d2 device strided_batched array or host strided_batched array of input scalars that is overwritten. @param[in] stride_d2 rocblas_stride specifies the increment between the beginning of d2_i and d2_(i+1). @param[inout] x1 device strided_batched array or host strided_batched array of input scalars that is overwritten. @param[in] stride_x1 rocblas_stride specifies the increment between the beginning of x1_i and x1_(i+1). @param[in] y1 device strided_batched array or host strided_batched array of input scalars. @param[in] stride_y1 rocblas_stride specifies the increment between the beginning of y1_i and y1_(i+1). @param[out] param device strided_batched array or host strided_batched array of vectors of 5 elements defining the rotation.

param[0] = flag param[1] = H11 param[2] = H21 param[3] = H12 param[4] = H22 The flag parameter defines the form of H:

flag = -1 => H = ( H11 H12 H21 H22 ) flag = 0 => H = ( 1.0 H12 H21 1.0 ) flag = 1 => H = ( H11 1.0 -1.0 H22 ) flag = -2 => H = ( 1.0 0.0 0.0 1.0 )

param may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

@param[in] stride_param rocblas_stride specifies the increment between the beginning of param_i and param_(i + 1). @param[in] batch_count rocblas_int the number of instances in the batch.

source

pub unsafe fn rocblas_drotmg_strided_batched( &self, handle: rocblas_handle, d1: *mut f64, stride_d1: rocblas_stride, d2: *mut f64, stride_d2: rocblas_stride, x1: *mut f64, stride_x1: rocblas_stride, y1: *const f64, stride_y1: rocblas_stride, param: *mut f64, stride_param: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgbmv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gbmv performs one of the matrix-vector operations:

y := alphaAx + betay, or y := alphaATx + betay, or y := alpha*AHx + betay, where alpha and beta are scalars, x and y are vectors and A is an m by n banded matrix with kl sub-diagonals and ku super-diagonals.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] trans rocblas_operation indicates whether matrix A is tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of matrix A. @param[in] n rocblas_int number of columns of matrix A. @param[in] kl rocblas_int number of sub-diagonals of A. @param[in] ku rocblas_int number of super-diagonals of A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer storing banded matrix A. Leading (kl + ku + 1) by n part of the matrix contains the coefficients of the banded matrix. The leading diagonal resides in row (ku + 1) with the first super-diagonal above on the RHS of row ku. The first sub-diagonal resides below on the LHS of row ku + 2. This propagates up and down across sub/super-diagonals.

Ex: (m = n = 7; ku = 2, kl = 2) 1 2 3 0 0 0 0 0 0 3 3 3 3 3 4 1 2 3 0 0 0 0 2 2 2 2 2 2 5 4 1 2 3 0 0 ––> 1 1 1 1 1 1 1 0 5 4 1 2 3 0 4 4 4 4 4 4 0 0 0 5 4 1 2 0 5 5 5 5 5 0 0 0 0 0 5 4 1 2 0 0 0 0 0 0 0 0 0 0 0 5 4 1 0 0 0 0 0 0 0

Note that the empty elements which do not correspond to data will not be referenced. @param[in] lda rocblas_int specifies the leading dimension of A. Must be >= (kl + ku + 1). @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_dgbmv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgbmv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgbmv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgbmv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gbmv_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + betay_i, or y_i := alphaA_iTx_i + betay_i, or y_i := alpha*A_iHx_i + betay_i, where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an m by n banded matrix with kl sub-diagonals and ku super-diagonals, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] trans rocblas_operation indicates whether matrix A is tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of each matrix A_i. @param[in] n rocblas_int number of columns of each matrix A_i. @param[in] kl rocblas_int number of sub-diagonals of each A_i. @param[in] ku rocblas_int number of super-diagonals of each A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each banded matrix A_i. Leading (kl + ku + 1) by n part of the matrix contains the coefficients of the banded matrix. The leading diagonal resides in row (ku + 1) with the first super-diagonal above on the RHS of row ku. The first sub-diagonal resides below on the LHS of row ku + 2. This propagates up and down across sub/super-diagonals.

Ex: (m = n = 7; ku = 2, kl = 2) 1 2 3 0 0 0 0 0 0 3 3 3 3 3 4 1 2 3 0 0 0 0 2 2 2 2 2 2 5 4 1 2 3 0 0 ––> 1 1 1 1 1 1 1 0 5 4 1 2 3 0 4 4 4 4 4 4 0 0 0 5 4 1 2 0 5 5 5 5 5 0 0 0 0 0 5 4 1 2 0 0 0 0 0 0 0 0 0 0 0 5 4 1 0 0 0 0 0 0 0

Note that the empty elements which do not correspond to data will not be referenced. @param[in] lda rocblas_int specifies the leading dimension of each A_i. Must be >= (kl + ku + 1) @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] batch_count rocblas_int specifies the number of instances in the batch.

source

pub unsafe fn rocblas_dgbmv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgbmv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgbmv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgbmv_strided_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gbmv_strided_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + betay_i, or y_i := alphaA_iTx_i + betay_i, or y_i := alpha*A_iHx_i + betay_i, where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an m by n banded matrix with kl sub-diagonals and ku super-diagonals, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] trans rocblas_operation indicates whether matrix A is tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of matrix A. @param[in] n rocblas_int number of columns of matrix A. @param[in] kl rocblas_int number of sub-diagonals of A. @param[in] ku rocblas_int number of super-diagonals of A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer to first banded matrix (A_1). Leading (kl + ku + 1) by n part of the matrix contains the coefficients of the banded matrix. The leading diagonal resides in row (ku + 1) with the first super-diagonal above on the RHS of row ku. The first sub-diagonal resides below on the LHS of row ku + 2. This propagates up and down across sub/super-diagonals.

Ex: (m = n = 7; ku = 2, kl = 2) 1 2 3 0 0 0 0 0 0 3 3 3 3 3 4 1 2 3 0 0 0 0 2 2 2 2 2 2 5 4 1 2 3 0 0 ––> 1 1 1 1 1 1 1 0 5 4 1 2 3 0 4 4 4 4 4 4 0 0 0 5 4 1 2 0 5 5 5 5 5 0 0 0 0 0 5 4 1 2 0 0 0 0 0 0 0 0 0 0 0 5 4 1 0 0 0 0 0 0 0

Note that the empty elements which do not correspond to data will not be referenced. @param[in] lda rocblas_int specifies the leading dimension of A. Must be >= (kl + ku + 1). @param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x device pointer to first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer to first vector (y_1). @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (x_i+1). @param[in] batch_count rocblas_int specifies the number of instances in the batch.

source

pub unsafe fn rocblas_dgbmv_strided_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgbmv_strided_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgbmv_strided_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, kl: rocblas_int, ku: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gemv performs one of the matrix-vector operations:

y := alphaAx + betay, or y := alphaATx + betay, or y := alpha*AHx + betay, where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] trans rocblas_operation indicates whether matrix A is tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of matrix A. @param[in] n rocblas_int number of columns of matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_dgemv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemv( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gemv_batched performs a batch of matrix-vector operations:

y_i := alphaA_ix_i + betay_i, or y_i := alphaA_iTx_i + betay_i, or y_i := alpha*A_iHx_i + betay_i, where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an m by n matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] trans rocblas_operation indicates whether matrices A_i are tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of each matrix A_i. @param[in] n rocblas_int number of columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each matrix A_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dgemv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemv_batched( &self, handle: rocblas_handle, trans: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemv_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details gemv_strided_batched performs a batch of matrix-vector operations:

y_i := alphaA_ix_i + betay_i, or y_i := alphaA_iTx_i + betay_i, or y_i := alpha*A_iHx_i + betay_i, where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an m by n matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation indicates whether matrices A_i are tranposed (conjugated) or not. @param[in] m rocblas_int number of rows of matrices A_i. @param[in] n rocblas_int number of columns of matrices A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer to the first matrix (A_1) in the batch. @param[in] lda rocblas_int specifies the leading dimension of matrices A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x device pointer to the first vector (x_1) in the batch. @param[in] incx rocblas_int specifies the increment for the elements of vectors x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. When trans equals rocblas_operation_none this typically means stride_x >= n * incx, otherwise stride_x >= m * incx. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer to the first vector (y_1) in the batch. @param[in] incy rocblas_int specifies the increment for the elements of vectors y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stride_y. However, ensure that stride_y is of appropriate size. When trans equals rocblas_operation_none this typically means stride_y >= m * incy, otherwise stride_y >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dgemv_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemv_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemv_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hbmv performs the matrix-vector operations:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A is an n by n Hermitian band matrix, with k super-diagonals.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: The upper triangular part of A is being supplied.
  • rocblas_fill_lower: The lower triangular part of A is being supplied. @param[in] n rocblas_int the order of the matrix A. @param[in] k rocblas_int the number of super-diagonals of the matrix A. Must be >= 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer storing matrix A. Of dimension (lda, n).

if uplo == rocblas_fill_upper: The leading (k + 1) by n part of A must contain the upper triangular band part of the Hermitian matrix, with the leading diagonal in row (k + 1), the first super-diagonal on the RHS of row k, etc. The top left k by x triangle of A will not be referenced. Ex (upper, lda = n = 4, k = 1): A Represented matrix (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0)

if uplo == rocblas_fill_lower: The leading (k + 1) by n part of A must contain the lower triangular band part of the Hermitian matrix, with the leading diagonal in row (1), the first sub-diagonal on the LHS of row 2, etc. The bottom right k by k triangle of A will not be referenced. Ex (lower, lda = 2, n = 4, k = 1): A Represented matrix (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) (0, 0) (6, 8) (3, 0) (7,-7) (0, 0) (0, 0) (7, 7) (4, 0)

As a Hermitian matrix, the imaginary part of the main diagonal of A will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of A. must be >= k + 1. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_zhbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hbmv_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: The upper triangular part of each A_i is being supplied.
  • rocblas_fill_lower: The lower triangular part of each A_i is being supplied. @param[in] n rocblas_int the order of each matrix A_i. @param[in] k rocblas_int the number of super-diagonals of each matrix A_i. Must be >= 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix_i A of dimension (lda, n).

if uplo == rocblas_fill_upper: The leading (k + 1) by n part of each A_i must contain the upper triangular band part of the Hermitian matrix, with the leading diagonal in row (k + 1), the first super-diagonal on the RHS of row k, etc. The top left k by x triangle of each A_i will not be referenced. Ex (upper, lda = n = 4, k = 1): A Represented matrix (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0)

if uplo == rocblas_fill_lower: The leading (k + 1) by n part of each A_i must contain the lower triangular band part of the Hermitian matrix, with the leading diagonal in row (1), the first sub-diagonal on the LHS of row 2, etc. The bottom right k by k triangle of each A_i will not be referenced. Ex (lower, lda = 2, n = 4, k = 1): A Represented matrix (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) (0, 0) (6, 8) (3, 0) (7,-7) (0, 0) (0, 0) (7, 7) (4, 0)

As a Hermitian matrix, the imaginary part of the main diagonal of each A_i will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. must be >= max(1, n). @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hbmv_strided_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian band matrix with k super-diagonals, for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: The upper triangular part of each A_i is being supplied.
  • rocblas_fill_lower: The lower triangular part of each A_i is being supplied. @param[in] n rocblas_int the order of each matrix A_i. @param[in] k rocblas_int the number of super-diagonals of each matrix A_i. Must be >= 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array pointing to the first matrix A_1. Each A_i is of dimension (lda, n).

if uplo == rocblas_fill_upper: The leading (k + 1) by n part of each A_i must contain the upper triangular band part of the Hermitian matrix, with the leading diagonal in row (k + 1), the first super-diagonal on the RHS of row k, etc. The top left k by x triangle of each A_i will not be referenced. Ex (upper, lda = n = 4, k = 1): A Represented matrix (0,0) (5,9) (6,8) (7,7) (1, 0) (5, 9) (0, 0) (0, 0) (1,0) (2,0) (3,0) (4,0) (5,-9) (2, 0) (6, 8) (0, 0) (0,0) (0,0) (0,0) (0,0) (0, 0) (6,-8) (3, 0) (7, 7) (0,0) (0,0) (0,0) (0,0) (0, 0) (0, 0) (7,-7) (4, 0)

if uplo == rocblas_fill_lower: The leading (k + 1) by n part of each A_i must contain the lower triangular band part of the Hermitian matrix, with the leading diagonal in row (1), the first sub-diagonal on the LHS of row 2, etc. The bottom right k by k triangle of each A_i will not be referenced. Ex (lower, lda = 2, n = 4, k = 1): A Represented matrix (1,0) (2,0) (3,0) (4,0) (1, 0) (5,-9) (0, 0) (0, 0) (5,9) (6,8) (7,7) (0,0) (5, 9) (2, 0) (6,-8) (0, 0) (0, 0) (6, 8) (3, 0) (7,-7) (0, 0) (0, 0) (7, 7) (4, 0)

As a Hermitian matrix, the imaginary part of the main diagonal of each A_i will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. must be >= max(1, n). @param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x device array pointing to the first vector y_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array pointing to the first vector y_1. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hemv performs one of the matrix-vector operations:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A is an n by n Hermitian matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied.
  • rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. @param[in] n rocblas_int the order of the matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device pointer storing matrix A. Of dimension (lda, n).

if uplo == rocblas_fill_upper: The upper triangular part of A must contain the upper triangular part of a Hermitian matrix. The lower triangular part of A will not be referenced.

if uplo == rocblas_fill_lower: The lower triangular part of A must contain the lower triangular part of a Hermitian matrix. The upper triangular part of A will not be referenced. As a Hermitian matrix, the imaginary part of the main diagonal of A will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of A. must be >= max(1, n). @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_zhemv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hemv_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian matrix, for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied.
  • rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. @param[in] n rocblas_int the order of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i of dimension (lda, n).

if uplo == rocblas_fill_upper: The upper triangular part of each A_i must contain the upper triangular part of a Hermitian matrix. The lower triangular part of each A_i will not be referenced.

if uplo == rocblas_fill_lower: The lower triangular part of each A_i must contain the lower triangular part of a Hermitian matrix. The upper triangular part of each A_i will not be referenced. As a Hermitian matrix, the imaginary part of the main diagonal of each A_i will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. must be >= max(1, n). @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhemv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hemv_strided_batched performs one of the matrix-vector operations:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian matrix, for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied.
  • rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied. @param[in] n rocblas_int the order of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i of dimension (lda, n).

if uplo == rocblas_fill_upper: The upper triangular part of each A_i must contain the upper triangular part of a Hermitian matrix. The lower triangular part of each A_i will not be referenced.

if uplo == rocblas_fill_lower: The lower triangular part of each A_i must contain the lower triangular part of a Hermitian matrix. The upper triangular part of each A_i will not be referenced. As a Hermitian matrix, the imaginary part of the main diagonal of each A_i will not be referenced and is assumed to be == 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. must be >= max(1, n). @param[in] stride_A rocblas_stride stride from the start of one (A_i) to the next (A_i+1). @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhemv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her performs the matrix-vector operations:

A := A + alphaxx**H where alpha is a real scalar, x is a vector, and A is an n by n Hermitian matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied in A.
  • rocblas_fill_lower: The lower triangular part of A is supplied in A. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] A device pointer storing the specified triangular portion of the Hermitian matrix A. Of size (lda * n).

if uplo == rocblas_fill_upper: The upper triangular portion of the Hermitian matrix A is supplied. The lower triangluar portion will not be touched.

if uplo == rocblas_fill_lower: The lower triangular portion of the Hermitian matrix A is supplied. The upper triangular portion will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0.

@param[in] lda rocblas_int specifies the leading dimension of A. Must be at least max(1, n).

source

pub unsafe fn rocblas_zher( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**H where alpha is a real scalar, x_i is a vector, and A_i is an n by n symmetric matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in A.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in A. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] A device array of device pointers storing the specified triangular portion of each Hermitian matrix A_i of at least size ((n * (n + 1)) / 2). Array is of at least size batch_count.

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion of each A_i will not be touched. if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion of each A_i will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0.

@param[in] lda rocblas_int specifies the leading dimension of each A_i. Must be at least max(1, n). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**H where alpha is a real scalar, x_i is a vector, and A_i is an n by n Hermitian matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in A.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in A. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[inout] A device array of device pointers storing the specified triangular portion of each Hermitian matrix A_i. Points to the first matrix (A_1).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion of each A_i will not be touched.

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion of each A_i will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] stride_A rocblas_stride stride from the start of one (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her2 performs the matrix-vector operations:

A := A + alphaxyH + conj(alpha)yxH where alpha is a complex scalar, x and y are vectors, and A is an n by n Hermitian matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied.
  • rocblas_fill_lower: The lower triangular part of A is supplied. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] A device pointer storing the specified triangular portion of the Hermitian matrix A. Of size (lda, n).

if uplo == rocblas_fill_upper: The upper triangular portion of the Hermitian matrix A is supplied. The lower triangular portion of A will not be touched.

if uplo == rocblas_fill_lower: The lower triangular portion of the Hermitian matrix A is supplied. The upper triangular portion of A will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] lda rocblas_int specifies the leading dimension of A. Must be at least max(lda, 1).

source

pub unsafe fn rocblas_zher2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her2_batched performs the matrix-vector operations:

A_i := A_i + alphax_iy_iH + conj(alpha)y_ix_iH where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an n by n Hermitian matrix for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[inout] A device array of device pointers storing the specified triangular portion of each Hermitian matrix A_i of size (lda, n).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion of each A_i will not be touched.

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion of each A_i will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. Must be at least max(lda, 1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details her2_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_iy_iH + conj(alpha)y_ix_iH where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an n by n Hermitian matrix for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride specifies the stride between the beginning of one vector (x_i) and the next (x_i+1). @param[in] y device pointer pointing to the first vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stride_y rocblas_stride specifies the stride between the beginning of one vector (y_i) and the next (y_i+1). @param[inout] A device pointer pointing to the first matrix (A_1). Stores the specified triangular portion of each Hermitian matrix A_i.

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The lower triangular portion of each A_i will not be touched.

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The upper triangular portion of each A_i will not be touched. Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] lda rocblas_int specifies the leading dimension of each A_i. Must be at least max(lda, 1). @param[in] stride_A rocblas_stride specifies the stride between the beginning of one matrix (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpmv performs the matrix-vector operation:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A is an n by n Hermitian matrix, supplied in packed form (see description below).

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of the Hermitian matrix A is supplied in AP.
  • rocblas_fill_lower: the lower triangular part of the Hermitian matrix A is supplied in AP. @param[in] n rocblas_int the order of the matrix A. Must be >= 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] AP device pointer storing the packed version of the specified triangular portion of the Hermitian matrix A. Of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,1),(4,0),(3,2),(5,-1),(6,0)] (3,-2) (5, 1) (6, 0)

if uplo == rocblas_fill_lower: The lower triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,-1),(3,-2),(4,0),(5,1),(6,0)] (3,-2) (5, 1) (6, 0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y.

source

pub unsafe fn rocblas_zhpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpmv_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian matrix, supplied in packed form (see description below), for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of each Hermitian matrix A_i is supplied in AP.
  • rocblas_fill_lower: the lower triangular part of each Hermitian matrix A_i is supplied in AP. @param[in] n rocblas_int the order of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] AP device pointer of device pointers storing the packed version of the specified triangular portion of each Hermitian matrix A_i. Each A_i is of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that each AP_i contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,1),(4,0),(3,2),(5,-1),(6,0)] (3,-2) (5, 1) (6, 0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that each AP_i contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,-1),(3,-2),(4,0),(5,1),(6,0)] (3,-2) (5, 1) (6, 0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpmv_strided_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where alpha and beta are scalars, x_i and y_i are n element vectors and A_i is an n by n Hermitian matrix, supplied in packed form (see description below), for each batch in i = [1, batch_count].

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: the upper triangular part of each Hermitian matrix A_i is supplied in AP.
  • rocblas_fill_lower: the lower triangular part of each Hermitian matrix A_i is supplied in AP. @param[in] n rocblas_int the order of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] AP device pointer pointing to the beginning of the first matrix (AP_1). Stores the packed version of the specified triangular portion of each Hermitian matrix AP_i of size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that each AP_i contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,1),(4,0),(3,2),(5,-1),(6,0)] (3,-2) (5, 1) (6, 0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that each AP_i contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (3, 2) (2,-1) (4, 0) (5,-1) —> [(1,0),(2,-1),(3,-2),(4,0),(5,1),(6,0)] (3,-2) (5, 1) (6, 0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] stride_A rocblas_stride stride from the start of one matrix (AP_i) and the next one (AP_i+1). @param[in] x device array pointing to the beginning of the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] beta device pointer or host pointer to scalar beta. @param[inout] y device array pointing to the beginning of the first vector (y_1). @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr performs the matrix-vector operations:

A := A + alphaxx**H where alpha is a real scalar, x is a vector, and A is an n by n Hermitian matrix, supplied in packed form.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of A is supplied in AP. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] AP device pointer storing the packed version of the specified triangular portion of the Hermitian matrix A. Of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0.

source

pub unsafe fn rocblas_zhpr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_chpr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**H where alpha is a real scalar, x_i is a vector, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each Hermitian matrix A_i of at least size ((n * (n + 1)) / 2). Array is of at least size batch_count.

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**H where alpha is a real scalar, x_i is a vector, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each Hermitian matrix A_i. Points to the first matrix (A_1).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] stride_A rocblas_stride stride from the start of one (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, AP: *mut rocblas_float_complex ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr2 performs the matrix-vector operations:

A := A + alphaxyH + conj(alpha)yxH where alpha is a complex scalar, x and y are vectors, and A is an n by n Hermitian matrix, supplied in packed form.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of A is supplied in AP. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] AP device pointer storing the packed version of the specified triangular portion of the Hermitian matrix A. Of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of the Hermitian matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0.

source

pub unsafe fn rocblas_zhpr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, AP: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_chpr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr2_batched performs the matrix-vector operations:

A_i := A_i + alphax_iy_iH + conj(alpha)y_ix_iH where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each Hermitian matrix A_i of at least size ((n * (n + 1)) / 2). Array is of at least size batch_count.

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) –> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chpr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details hpr2_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_iy_iH + conj(alpha)y_ix_iH where alpha is a complex scalar, x_i and y_i are vectors, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] y device pointer pointing to the first vector (y_1). @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each Hermitian matrix A_i. Points to the first matrix (A_1).

if uplo == rocblas_fill_upper: The upper triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,1),(3,0),(4,9),(5,3),(6,0)] (4,-9) (5,-3) (6,0)

if uplo == rocblas_fill_lower: The lower triangular portion of each Hermitian matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 3) (1, 0) (2, 1) (4,9) (2,-1) (3, 0) (5,3) —> [(1,0),(2,-1),(4,-9),(3,0),(5,-3),(6,0)] (4,-9) (5,-3) (6,0) Note that the imaginary part of the diagonal elements are not accessed and are assumed to be 0. @param[in] stride_A rocblas_stride stride from the start of one (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhpr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trmv performs one of the matrix-vector operations:

x = Ax or x = A**Tx, where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix. The vector x is overwritten. @param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of A. m >= 0.

@param[in] A device pointer storing matrix A, of dimension ( lda, m ).

@param[in] lda rocblas_int specifies the leading dimension of A. lda = max( 1, m ).

@param[in] x device pointer storing vector x.

@param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dtrmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trmv_batched performs one of the matrix-vector operations:

x_i = A_ix_i or x_i = A**Tx_i, 0 < i < batch_count where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) The vectors x_i are overwritten.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of matrices A_i. m >= 0.

@param[in] A device pointer storing pointer of matrices A_i, of dimension ( lda, m )

@param[in] lda rocblas_int specifies the leading dimension of A_i. lda >= max( 1, m ).

@param[in] x device pointer storing vectors x_i.

@param[in] incx rocblas_int specifies the increment for the elements of vectors x_i.

@param[in] batch_count rocblas_int The number of batched matrices/vectors.

source

pub unsafe fn rocblas_dtrmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trmv_strided_batched performs one of the matrix-vector operations:

x_i = A_ix_i or x_i = A**Tx_i, 0 < i < batch_count where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$).

The vectors x_i are overwritten.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of matrices A_i. m >= 0.

@param[in] A device pointer of the matrix A_0, of dimension ( lda, m ).

@param[in] lda rocblas_int specifies the leading dimension of A_i. lda >= max( 1, m ).

@param[in] stride_A rocblas_stride stride from the start of one A_i matrix to the next A_{i + 1}.

@param[in] x device pointer storing the vector x_0.

@param[in] incx rocblas_int specifies the increment for the elements of one vector x.

@param[in] stride_x rocblas_stride stride from the start of one x_i vector to the next x_{i + 1}.

@param[in] batch_count rocblas_int The number of batched matrices/vectors.

source

pub unsafe fn rocblas_dtrmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpmv performs one of the matrix-vector operations:

x = Ax or x = A**Tx, where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in the pack form. The vector x is overwritten.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of A. m >= 0.

@param[in] A device pointer storing matrix A, of dimension at leat ( m * ( m + 1 ) / 2 ).

  • Before entry with uplo = rocblas_fill_upper, the array A must contain the upper triangular matrix packed sequentially, column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain a_{0,1} and a_{1, 1}, respectively, and so on.

  • Before entry with uplo = rocblas_fill_lower, the array A must contain the lower triangular matrix packed sequentially, column by column, so that A[0] contains a_{0,0}, A[1] and A[2] contain a_{1,0} and a_{2,0}, respectively, and so on.

Note that when DIAG = rocblas_diagonal_unit, the diagonal elements of A are not referenced, but are assumed to be unity.

@param[in] x device pointer storing vector x.

@param[in] incx rocblas_int specifies the increment for the elements of x. incx must not be zero.

source

pub unsafe fn rocblas_dtpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpmv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpmv_batched performs one of the matrix-vector operations:

x_i = A_ix_i or x_i = A**Tx_i, 0 < i < batch_count where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) The vectors x_i are overwritten.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of matrices A_i. m >= 0.

@param[in] A device pointer storing pointer of matrices A_i, of dimension ( lda, m ).

@param[in] x device pointer storing vectors x_i.

@param[in] incx rocblas_int specifies the increment for the elements of vectors x_i.

@param[in] batch_count rocblas_int The number of batched matrices/vectors.

source

pub unsafe fn rocblas_dtpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpmv_strided_batched performs one of the matrix-vector operations:

x_i = A_ix_i or x_i = A**Tx_i, 0 < i < batch_count where x_i is an n element vector and A_i is an n by n (unit, or non-unit, upper or lower triangular matrix) with strides specifying how to retrieve $x_i$ (resp. $A_i$) from $x_{i-1}$ (resp. $A_i$). The vectors x_i are overwritten.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of matrices A_i. m >= 0.

@param[in] A device pointer of the matrix A_0, of dimension ( lda, m )

@param[in] stride_A rocblas_stride stride from the start of one A_i matrix to the next A_{i + 1}.

@param[in] x device pointer storing the vector x_0.

@param[in] incx rocblas_int specifies the increment for the elements of one vector x.

@param[in] stride_x rocblas_stride stride from the start of one x_i vector to the next x_{i + 1}.

@param[in] batch_count rocblas_int The number of batched matrices/vectors.

source

pub unsafe fn rocblas_dtpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbmv performs one of the matrix-vector operations:

x := Ax or x := A**Tx or x := A**H*x, x is a vectors and A is a banded m by m matrix (see description below).

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper banded triangular matrix.
  • rocblas_fill_lower: A is a lower banded triangular matrix. @param[in] trans rocblas_operation indicates whether matrix A is tranposed (conjugated) or not. @param[in] diag rocblas_diagonal
  • rocblas_diagonal_unit: The main diagonal of A is assumed to consist of only 1’s and is not referenced.
  • rocblas_diagonal_non_unit: No assumptions are made of A’s main diagonal. @param[in] m rocblas_int the number of rows and columns of the matrix represented by A. @param[in] k rocblas_int

if uplo == rocblas_fill_upper, k specifies the number of super-diagonals of the matrix A.

if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals of the matrix A. k must satisfy k > 0 && k < lda. @param[in] A device pointer storing banded triangular matrix A.

if uplo == rocblas_fill_upper: The matrix represented is an upper banded triangular matrix with the main diagonal and k super-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the k’th row, the first super diagonal resides on the RHS of the k-1’th row, etc, with the k’th diagonal on the RHS of the 0’th row. Ex: (rocblas_fill_upper; m = 5; k = 2) 1 6 9 0 0 0 0 9 8 7 0 2 7 8 0 0 6 7 8 9 0 0 3 8 7 ––> 1 2 3 4 5 0 0 0 4 9 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0

if uplo == rocblas_fill_lower: The matrix represnted is a lower banded triangular matrix with the main diagonal and k sub-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the 0’th row, working up to the k’th diagonal residing on the LHS of the k’th row. Ex: (rocblas_fill_lower; m = 5; k = 2) 1 0 0 0 0 1 2 3 4 5 6 2 0 0 0 6 7 8 9 0 9 7 3 0 0 ––> 9 8 7 0 0 0 8 8 4 0 0 0 0 0 0 0 0 7 9 5 0 0 0 0 0 @param[in] lda rocblas_int specifies the leading dimension of A. lda must satisfy lda > k. @param[inout] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dtbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbmv_batched performs one of the matrix-vector operations:

x_i := A_ix_i or x_i := A_i**Tx_i or x_i := A_i**H*x_i, where (A_i, x_i) is the i-th instance of the batch. x_i is a vector and A_i is an m by m matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper banded triangular matrix.
  • rocblas_fill_lower: each A_i is a lower banded triangular matrix. @param[in] trans rocblas_operation indicates whether each matrix A_i is tranposed (conjugated) or not. @param[in] diag rocblas_diagonal
  • rocblas_diagonal_unit: The main diagonal of each A_i is assumed to consist of only 1’s and is not referenced.
  • rocblas_diagonal_non_unit: No assumptions are made of each A_i’s main diagonal. @param[in] m rocblas_int the number of rows and columns of the matrix represented by each A_i. @param[in] k rocblas_int

if uplo == rocblas_fill_upper, k specifies the number of super-diagonals of each matrix A_i.

if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals of each matrix A_i. k must satisfy k > 0 && k < lda. @param[in] A device array of device pointers storing each banded triangular matrix A_i.

if uplo == rocblas_fill_upper: The matrix represented is an upper banded triangular matrix with the main diagonal and k super-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the k’th row, the first super diagonal resides on the RHS of the k-1’th row, etc, with the k’th diagonal on the RHS of the 0’th row. Ex: (rocblas_fill_upper; m = 5; k = 2) 1 6 9 0 0 0 0 9 8 7 0 2 7 8 0 0 6 7 8 9 0 0 3 8 7 ––> 1 2 3 4 5 0 0 0 4 9 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0

if uplo == rocblas_fill_lower: The matrix represnted is a lower banded triangular matrix with the main diagonal and k sub-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the 0’th row, working up to the k’th diagonal residing on the LHS of the k’th row. Ex: (rocblas_fill_lower; m = 5; k = 2) 1 0 0 0 0 1 2 3 4 5 6 2 0 0 0 6 7 8 9 0 9 7 3 0 0 ––> 9 8 7 0 0 0 8 8 4 0 0 0 0 0 0 0 0 7 9 5 0 0 0 0 0 @param[in] lda rocblas_int specifies the leading dimension of each A_i. lda must satisfy lda > k. @param[inout] x device array of device pointer storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbmv_strided_batched performs one of the matrix-vector operations:

x_i := A_ix_i or x_i := A_i**Tx_i or x_i := A_i**H*x_i, where (A_i, x_i) is the i-th instance of the batch. x_i is a vector and A_i is an m by m matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper banded triangular matrix.
  • rocblas_fill_lower: each A_i is a lower banded triangular matrix. @param[in] trans rocblas_operation indicates whether each matrix A_i is tranposed (conjugated) or not. @param[in] diag rocblas_diagonal
  • rocblas_diagonal_unit: The main diagonal of each A_i is assumed to consist of only 1’s and is not referenced.
  • rocblas_diagonal_non_unit: No assumptions are made of each A_i’s main diagonal. @param[in] m rocblas_int the number of rows and columns of the matrix represented by each A_i. @param[in] k rocblas_int

if uplo == rocblas_fill_upper, k specifies the number of super-diagonals of each matrix A_i.

if uplo == rocblas_fill_lower, k specifies the number of sub-diagonals of each matrix A_i. k must satisfy k > 0 && k < lda. @param[in] A device array to the first matrix A_i of the batch. Stores each banded triangular matrix A_i.

if uplo == rocblas_fill_upper: The matrix represented is an upper banded triangular matrix with the main diagonal and k super-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the k’th row, the first super diagonal resides on the RHS of the k-1’th row, etc, with the k’th diagonal on the RHS of the 0’th row. Ex: (rocblas_fill_upper; m = 5; k = 2) 1 6 9 0 0 0 0 9 8 7 0 2 7 8 0 0 6 7 8 9 0 0 3 8 7 ––> 1 2 3 4 5 0 0 0 4 9 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0

if uplo == rocblas_fill_lower: The matrix represnted is a lower banded triangular matrix with the main diagonal and k sub-diagonals, everything else can be assumed to be 0. The matrix is compacted so that the main diagonal resides on the 0’th row, working up to the k’th diagonal residing on the LHS of the k’th row. Ex: (rocblas_fill_lower; m = 5; k = 2) 1 0 0 0 0 1 2 3 4 5 6 2 0 0 0 6 7 8 9 0 9 7 3 0 0 ––> 9 8 7 0 0 0 8 8 4 0 0 0 0 0 0 0 0 7 9 5 0 0 0 0 0 @param[in] lda rocblas_int specifies the leading dimension of each A_i. lda must satisfy lda > k. @param[in] stride_A rocblas_stride stride from the start of one A_i matrix to the next A_(i + 1). @param[inout] x device array to the first vector x_i of the batch. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one x_i matrix to the next x_(i + 1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbsv solves:

Ax = b or A**Tx = b or A**H*x = b where x and b are vectors and A is a banded triangular matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A*x = b
  • rocblas_operation_transpose: Solves A**T*x = b
  • rocblas_operation_conjugate_transpose: Solves A**H*x = b

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular (i.e. the diagonal elements of A are not used in computations).
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of b. n >= 0. @param[in] k rocblas_int

if(uplo == rocblas_fill_upper) k specifies the number of super-diagonals of A. if(uplo == rocblas_fill_lower) k specifies the number of sub-diagonals of A. k >= 0.

@param[in] A device pointer storing the matrix A in banded format.

@param[in] lda rocblas_int specifies the leading dimension of A. lda >= (k + 1).

@param[inout] x device pointer storing input vector b. Overwritten by the output vector x.

@param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dtbsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbsv_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i or A_i**H*x_i = b_i where x_i and b_i are vectors and A_i is a banded triangular matrix, for i = [1, batch_count].

The input vectors b_i are overwritten by the output vectors x_i.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A_i*x_i = b_i
  • rocblas_operation_transpose: Solves A_i**T*x_i = b_i
  • rocblas_operation_conjugate_transpose: Solves A_i**H*x_i = b_i

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements of each A_i are not used in computations).
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of each b_i. n >= 0. @param[in] k rocblas_int

if(uplo == rocblas_fill_upper) k specifies the number of super-diagonals of each A_i. if(uplo == rocblas_fill_lower) k specifies the number of sub-diagonals of each A_i. k >= 0.

@param[in] A device vector of device pointers storing each matrix A_i in banded format.

@param[in] lda rocblas_int specifies the leading dimension of each A_i. lda >= (k + 1).

@param[inout] x device vector of device pointers storing each input vector b_i. Overwritten by each output vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtbsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stbsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tbsv_strided_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i or A_i**H*x_i = b_i where x_i and b_i are vectors and A_i is a banded triangular matrix, for i = [1, batch_count].

The input vectors b_i are overwritten by the output vectors x_i.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix.
  • rocblas_fill_lower: A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A_i*x_i = b_i
  • rocblas_operation_transpose: Solves A_i**T*x_i = b_i
  • rocblas_operation_conjugate_transpose: Solves A_i**H*x_i = b_i

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements of each A_i are not used in computations).
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of each b_i. n >= 0. @param[in] k rocblas_int

if(uplo == rocblas_fill_upper) k specifies the number of super-diagonals of each A_i. if(uplo == rocblas_fill_lower) k specifies the number of sub-diagonals of each A_i. k >= 0.

@param[in] A device pointer pointing to the first banded matrix A_1.

@param[in] lda rocblas_int specifies the leading dimension of each A_i. lda >= (k + 1). @param[in] stride_A rocblas_stride specifies the distance between the start of one matrix (A_i) and the next (A_i+1).

@param[inout] x device pointer pointing to the first input vector b_1. Overwritten by output vectors x. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride specifies the distance between the start of one vector (x_i) and the next (x_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtbsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctbsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztbsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, k: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trsv solves:

Ax = b or A**Tx = b where x and b are vectors and A is a triangular matrix. The vector x is overwritten on b.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of b. m >= 0.

@param[in] A device pointer storing matrix A, of dimension ( lda, m )

@param[in] lda rocblas_int specifies the leading dimension of A. lda = max( 1, m ).

@param[in] x device pointer storing vector x.

@param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dtrsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trsv_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i where (A_i, x_i, b_i) is the i-th instance of the batch. x_i and b_i are vectors and A_i is an m by m triangular matrix.

The vector x is overwritten on b.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of b. m >= 0.

@param[in] A device array of device pointers storing each matrix A_i.

@param[in] lda rocblas_int specifies the leading dimension of each A_i. lda = max(1, m)

@param[in] x device array of device pointers storing each vector x_i.

@param[in] incx rocblas_int specifies the increment for the elements of x.

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtrsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details trsv_strided_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i where (A_i, x_i, b_i) is the i-th instance of the batch. x_i and b_i are vectors and A_i is an m by m triangular matrix, for i = 1, …, batch_count.

The vector x is overwritten on b.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of each b_i. m >= 0.

@param[in] A device pointer to the first matrix (A_1) in the batch, of dimension ( lda, m ).

@param[in] stride_A rocblas_stride stride from the start of one A_i matrix to the next A_(i + 1).

@param[in] lda rocblas_int specifies the leading dimension of each A_i. lda = max( 1, m ).

@param[in, out] x device pointer to the first vector (x_1) in the batch.

@param[in] stride_x rocblas_stride stride from the start of one x_i vector to the next x_(i + 1)

@param[in] incx rocblas_int specifies the increment for the elements of each x_i.

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dtrsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, x: *mut f32, incx: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpsv solves:

Ax = b or A**Tx = b or A**H*x = b where x and b are vectors and A is a triangular matrix stored in the packed format.

The input vector b is overwritten by the output vector x.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A*x = b
  • rocblas_operation_transpose: Solves A**T*x = b
  • rocblas_operation_conjugate_transpose: Solves A**H*x = b

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular (i.e. the diagonal elements of A are not used in computations).
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of b. n >= 0.

@param[in] AP device pointer storing the packed version of matrix A, of dimension >= (n * (n + 1) / 2).

@param[inout] x device pointer storing vector b on input, overwritten by x on output.

@param[in] incx rocblas_int specifies the increment for the elements of x.

source

pub unsafe fn rocblas_dtpsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, x: *mut f64, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, x: *mut rocblas_float_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpsv( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, x: *mut rocblas_double_complex, incx: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f32, x: *const *mut f32, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpsv_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i or A_i**H*x_i = b_i where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, for i in [1, batch_count].

The input vectors b_i are overwritten by the output vectors x_i.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A*x = b
  • rocblas_operation_transpose: Solves A**T*x = b
  • rocblas_operation_conjugate_transpose: Solves A**H*x = b

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: Each A_i is assumed to be unit triangular (i.e. the diagonal elements of each A_i are not used in computations).
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of each b_i. n >= 0.

@param[in] AP device array of device pointers storing the packed versions of each matrix A_i, of dimension >= (n * (n + 1) / 2).

@param[inout] x device array of device pointers storing each input vector b_i, overwritten by x_i on output.

@param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] batch_count rocblas_int specifies the number of instances in the batch.

source

pub unsafe fn rocblas_dtpsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const f64, x: *const *mut f64, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_float_complex, x: *const *mut rocblas_float_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpsv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const *const rocblas_double_complex, x: *const *mut rocblas_double_complex, incx: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_stpsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f32, stride_A: rocblas_stride, x: *mut f32, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details tpsv_strided_batched solves:

A_ix_i = b_i or A_i**Tx_i = b_i or A_i**H*x_i = b_i where x_i and b_i are vectors and A_i is a triangular matrix stored in the packed format, for i in [1, batch_count].

The input vectors b_i are overwritten by the output vectors x_i.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • rocblas_operation_none: Solves A*x = b
  • rocblas_operation_transpose: Solves A**T*x = b
  • rocblas_operation_conjugate_transpose: Solves A**H*x = b

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular (i.e. the diagonal elements of each A_i are not used in computations).
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] n rocblas_int n specifies the number of rows of each b_i. n >= 0.

@param[in] AP device pointer pointing to the first packed matrix A_1, of dimension >= (n * (n + 1) / 2).

@param[in] stride_A rocblas_stride stride from the beginning of one packed matrix (AP_i) and the next (AP_i+1).

@param[inout] x device pointer pointing to the first input vector b_1. Overwritten by each x_i on output.

@param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the beginning of one vector (x_i) and the next (x_i+1). @param[in] batch_count rocblas_int specifies the number of instances in the batch.

source

pub unsafe fn rocblas_dtpsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const f64, stride_A: rocblas_stride, x: *mut f64, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctpsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_float_complex, stride_A: rocblas_stride, x: *mut rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztpsv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, n: rocblas_int, AP: *const rocblas_double_complex, stride_A: rocblas_stride, x: *mut rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details symv performs the matrix-vector operation:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A should contain an upper or lower triangular n by n symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced.
  • if rocblas_fill_lower, the upper part of A is not referenced. @param[in] n rocblas_int @param[in] alpha specifies the scalar alpha. @param[in] A pointer storing matrix A on the GPU @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] x pointer storing vector x on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta specifies the scalar beta @param[out] y pointer storing vector y on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of y.
source

pub unsafe fn rocblas_dsymv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details symv_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric matrix, for i = 1, …, batch_count. A a should contain an upper or lower triangular symmetric matrix and the opposing triangular part of A is not referenced.

@param[in] handle rocblas_handle handle to the rocblas library context queue @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced.
  • if rocblas_fill_lower, the upper part of A is not referenced. @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each matrix A_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsymv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, beta: *const rocblas_float_complex, y: *const *mut rocblas_float_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, beta: *const rocblas_double_complex, y: *const *mut rocblas_double_complex, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details symv_strided_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric matrix, for i = 1, …, batch_count. A a should contain an upper or lower triangular symmetric matrix and the opposing triangular part of A is not referenced.

@param[in] handle rocblas_handle handle to the rocblas library context queue @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A Device pointer to the first matrix A_1 on the GPU. @param[in] lda rocblas_int specifies the leading dimension of each matrix A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x Device pointer to the first vector x_1 on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stridex is of appropriate size. This typically means stridex >= n * incx. stridex should be non zero. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y Device pointer to the first vector y_1 on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stride_y. However, ensure that stridey is of appropriate size. This typically means stridey >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsymv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_float_complex, y: *mut rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, beta: *const rocblas_double_complex, y: *mut rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spmv performs the matrix-vector operation:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A should contain an upper or lower triangular n by n packed symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int @param[in] alpha specifies the scalar alpha. @param[in] A pointer storing matrix A on the GPU. @param[in] x pointer storing vector x on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta specifies the scalar beta. @param[out] y pointer storing vector y on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of y.
source

pub unsafe fn rocblas_dspmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const *const f32, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spmv_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric matrix, for i = 1, …, batch_count. A should contain an upper or lower triangular n by n packed symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dspmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const *const f64, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, A: *const f32, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spmv_strided_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric matrix, for i = 1, …, batch_count. A should contain an upper or lower triangular n by n packed symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A Device pointer to the first matrix A_1 on the GPU. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x Device pointer to the first vector x_1 on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stridex. However, ensure that stridex is of appropriate size. This typically means stridex >= n * incx. stridex should be non zero. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y Device pointer to the first vector y_1 on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stridey. However, ensure that stridey is of appropriate size. This typically means stridey >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dspmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, A: *const f64, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, beta: *const f32, y: *mut f32, incy: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details sbmv performs the matrix-vector operation:

y := alphaAx + beta*y where alpha and beta are scalars, x and y are n element vectors and A should contain an upper or lower triangular n by n symmetric banded matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int @param[in] k rocblas_int specifies the number of sub- and super-diagonals. @param[in] alpha specifies the scalar alpha. @param[in] A pointer storing matrix A on the GPU. @param[in] lda rocblas_int specifies the leading dimension of matrix A. @param[in] x pointer storing vector x on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] beta specifies the scalar beta. @param[out] y pointer storing vector y on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of y.
source

pub unsafe fn rocblas_dsbmv( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, beta: *const f64, y: *mut f64, incy: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_dsbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, beta: *const f64, y: *const *mut f64, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details sbmv_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric banded matrix, for i = 1, …, batch_count. A should contain an upper or lower triangular n by n symmetric banded matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] k rocblas_int specifies the number of sub- and super-diagonals. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each matrix A_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_ssbmv_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, beta: *const f32, y: *const *mut f32, incy: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, strideA: rocblas_stride, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, beta: *const f32, y: *mut f32, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details sbmv_strided_batched performs the matrix-vector operation:

y_i := alphaA_ix_i + beta*y_i where (A_i, x_i, y_i) is the i-th instance of the batch. alpha and beta are scalars, x_i and y_i are vectors and A_i is an n by n symmetric banded matrix, for i = 1, …, batch_count. A should contain an upper or lower triangular n by n symmetric banded matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int number of rows and columns of each matrix A_i. @param[in] k rocblas_int specifies the number of sub- and super-diagonals. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] A Device pointer to the first matrix A_1 on the GPU. @param[in] lda rocblas_int specifies the leading dimension of each matrix A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x Device pointer to the first vector x_1 on the GPU. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stridex. However, ensure that stridex is of appropriate size. This typically means stridex >= n * incx. stridex should be non zero. @param[in] beta device pointer or host pointer to scalar beta. @param[out] y Device pointer to the first vector y_1 on the GPU. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stridey. However, ensure that stridey is of appropriate size. This typically means stridey >= n * incy. stridey should be non zero. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsbmv_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, strideA: rocblas_stride, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, beta: *const f64, y: *mut f64, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sger( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details ger,geru,gerc performs the matrix-vector operations:

A := A + alphaxyT , OR A := A + alphaxyH for gerc where alpha is a scalar, x and y are vectors, and A is an m by n matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] m rocblas_int the number of rows of the matrix A. @param[in] n rocblas_int the number of columns of the matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A.

source

pub unsafe fn rocblas_dger( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeru( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeru( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgerc( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgerc( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sger_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details ger_batched,geru_batched,gerc_batched perform a batch of the matrix-vector operations:

A := A + alphaxyT , OR A := A + alphaxyH for gerc where (A_i, x_i, y_i) is the i-th instance of the batch. alpha is a scalar, x_i and y_i are vectors and A_i is an m by n matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] m rocblas_int the number of rows of each matrix A_i. @param[in] n rocblas_int the number of columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each vector x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[inout] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dger_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeru_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeru_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgerc_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgerc_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sger_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details ger_strided_batched,geru_strided_batched,gerc_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_iy_iT, OR A_i := A_i + alphax_iy_iH for gerc where (A_i, x_i, y_i) is the i-th instance of the batch. alpha is a scalar, x_i and y_i are vectors and A_i is an m by n matrix, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] m rocblas_int the number of rows of each matrix A_i. @param[in] n rocblas_int the number of columns of each matrix A_i. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer to the first vector (x_1) in the batch. @param[in] incx rocblas_int specifies the increments for the elements of each vector x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. For a typical case this means stride_x >= m * incx. @param[inout] y device pointer to the first vector (y_1) in the batch. @param[in] incy rocblas_int specifies the increment for the elements of each vector y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). There are no restrictions placed on stride_y. However, ensure that stride_y is of appropriate size. For a typical case this means stride_y >= n * incy. @param[inout] A device pointer to the first matrix (A_1) in the batch. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1) @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dger_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeru_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeru_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgerc_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgerc_strided_batched( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, AP: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr performs the matrix-vector operations:

A := A + alphaxx**T where alpha is a scalar, x is a vector, and A is an n by n symmetric matrix, supplied in packed form.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of A is supplied in AP. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] AP device pointer storing the packed version of the specified triangular portion of the symmetric matrix A. Of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of the symmetric matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of the symmetric matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0

source

pub unsafe fn rocblas_dspr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, AP: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_cspr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, AP: *mut rocblas_float_complex ) -> rocblas_status

source

pub unsafe fn rocblas_zspr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, AP: *mut rocblas_double_complex ) -> rocblas_status

source

pub unsafe fn rocblas_sspr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**T where alpha is a scalar, x_i is a vector, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each symmetric matrix A_i of at least size ((n * (n + 1)) / 2). Array is of at least size batch_count.

if uplo == rocblas_fill_upper: The upper triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0 @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dspr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cspr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, AP: *const *mut rocblas_float_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zspr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, AP: *const *mut rocblas_double_complex, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr_strided_batched performs the matrix-vector operations:

A_i := A_i + alphax_ix_i**T where alpha is a scalar, x_i is a vector, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[inout] AP device pointer storing the packed version of the specified triangular portion of each symmetric matrix A_i. Points to the first A_1.

if uplo == rocblas_fill_upper: The upper triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(2) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0 @param[in] stride_A rocblas_stride stride from the start of one (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dspr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cspr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_float_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zspr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, AP: *mut rocblas_double_complex, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, AP: *mut f32 ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr2 performs the matrix-vector operation:

A := A + alphaxyT + alphayxT where alpha is a scalar, x and y are vectors, and A is an n by n symmetric matrix, supplied in packed form.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of A is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of A is supplied in AP. @param[in] n rocblas_int the number of rows and columns of matrix A. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] AP device pointer storing the packed version of the specified triangular portion of the symmetric matrix A. Of at least size ((n * (n + 1)) / 2).

if uplo == rocblas_fill_upper: The upper triangular portion of the symmetric matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of the symmetric matrix A is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(n) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0

source

pub unsafe fn rocblas_dspr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, AP: *mut f64 ) -> rocblas_status

source

pub unsafe fn rocblas_sspr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, AP: *const *mut f32, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr2_batched performs the matrix-vector operation:

A_i := A_i + alphax_iy_iT + alphay_ix_iT where alpha is a scalar, x_i and y_i are vectors, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[inout] AP device array of device pointers storing the packed version of the specified triangular portion of each symmetric matrix A_i of at least size ((n * (n + 1)) / 2). Array is of at least size batch_count.

if uplo == rocblas_fill_upper: The upper triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(n) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0 @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dspr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, AP: *const *mut f64, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sspr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, y: *const f32, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f32, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details spr2_strided_batched performs the matrix-vector operation:

A_i := A_i + alphax_iy_iT + alphay_ix_iT where alpha is a scalar, x_i and y_i are vectors, and A_i is an n by n symmetric matrix, supplied in packed form, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • rocblas_fill_upper: The upper triangular part of each A_i is supplied in AP.
  • rocblas_fill_lower: The lower triangular part of each A_i is supplied in AP. @param[in] n rocblas_int the number of rows and columns of each matrix A_i. Must be at least 0. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer pointing to the first vector (x_1). @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). @param[in] y device pointer pointing to the first vector (y_1). @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1). @param[inout] AP device pointer storing the packed version of the specified triangular portion of each symmetric matrix A_i. Points to the first A_1.

if uplo == rocblas_fill_upper: The upper triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(0,1) AP(2) = A(1,1), etc. Ex: (rocblas_fill_upper; n = 4) 1 2 4 7 2 3 5 8 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 4 5 6 9 7 8 9 0

if uplo == rocblas_fill_lower: The lower triangular portion of each symmetric matrix A_i is supplied. The matrix is compacted so that AP contains the triangular portion column-by-column so that: AP(0) = A(0,0) AP(1) = A(1,0) AP(n) = A(2,1), etc. Ex: (rocblas_fill_lower; n = 4) 1 2 3 4 2 5 6 7 —–> [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 3 6 8 9 4 7 9 0 @param[in] stride_A rocblas_stride stride from the start of one (A_i) and the next (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dspr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, y: *const f64, incy: rocblas_int, stride_y: rocblas_stride, AP: *mut f64, stride_A: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, A: *mut f32, lda: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr performs the matrix-vector operations:

A := A + alphaxx**T where alpha is a scalar, x is a vector, and A is an n by n symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced

@param[in] n rocblas_int the number of rows and columns of matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A.

source

pub unsafe fn rocblas_dsyr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, A: *mut f64, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr_batched performs a batch of matrix-vector operations:

A[i] := A[i] + alpha*x[i]*x[i]**T where alpha is a scalar, x is an array of vectors, and A is an array of n by n symmetric matrices, for i = 1 , … , batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int the number of rows and columns of matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsyr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr_strided_batched performs the matrix-vector operations:

A[i] := A[i] + alpha*x[i]*x[i]**T where alpha is a scalar, vectors, and A is an array of n by n symmetric matrices, for i = 1 , … , batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int the number of rows and columns of each matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stridex rocblas_stride specifies the pointer increment between vectors (x_i) and (x_i+1). @param[inout] A device pointer to the first matrix A_1. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsyr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, y: *const f32, incy: rocblas_int, A: *mut f32, lda: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr2 performs the matrix-vector operations:

A := A + alphaxyT + alphayxT where alpha is a scalar, x and y are vectors, and A is an n by n symmetric matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced

@param[in] n rocblas_int the number of rows and columns of matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] y device pointer storing vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A.

source

pub unsafe fn rocblas_dsyr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, y: *const f64, incy: rocblas_int, A: *mut f64, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, y: *const rocblas_float_complex, incy: rocblas_int, A: *mut rocblas_float_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, y: *const rocblas_double_complex, incy: rocblas_int, A: *mut rocblas_double_complex, lda: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const *const f32, incx: rocblas_int, y: *const *const f32, incy: rocblas_int, A: *const *mut f32, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr2_batched performs a batch of matrix-vector operations:

A[i] := A[i] + alpha*x[i]y[i]**T + alphay[i]*x[i]**T where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a n by n symmetric matrix, for i = 1 , … , batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int the number of rows and columns of matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[inout] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsyr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const *const f64, incx: rocblas_int, y: *const *const f64, incy: rocblas_int, A: *const *mut f64, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const *const rocblas_float_complex, incx: rocblas_int, y: *const *const rocblas_float_complex, incy: rocblas_int, A: *const *mut rocblas_float_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const *const rocblas_double_complex, incx: rocblas_int, y: *const *const rocblas_double_complex, incy: rocblas_int, A: *const *mut rocblas_double_complex, lda: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f32, x: *const f32, incx: rocblas_int, stridex: rocblas_stride, y: *const f32, incy: rocblas_int, stridey: rocblas_stride, A: *mut f32, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 2 API

\details syr2_strided_batched the matrix-vector operations:

A[i] := A[i] + alpha*x[i]y[i]**T + alphay[i]*x[i]**T where alpha is a scalar, x[i] and y[i] are vectors, and A[i] is a n by n symmetric matrices, for i = 1 , … , batch_count

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

  • if rocblas_fill_upper, the lower part of A is not referenced
  • if rocblas_fill_lower, the upper part of A is not referenced @param[in] n rocblas_int the number of rows and columns of each matrix A. @param[in] alpha device pointer or host pointer to scalar alpha. @param[in] x device pointer to the first vector x_1. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stridex rocblas_stride specifies the pointer increment between vectors (x_i) and (x_i+1). @param[in] y device pointer to the first vector y_1. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stridey rocblas_stride specifies the pointer increment between vectors (y_i) and (y_i+1). @param[inout] A device pointer to the first matrix A_1. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] strideA rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] batch_count rocblas_int number of instances in the batch.
source

pub unsafe fn rocblas_dsyr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const f64, x: *const f64, incx: rocblas_int, stridex: rocblas_stride, y: *const f64, incy: rocblas_int, stridey: rocblas_stride, A: *mut f64, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_float_complex, x: *const rocblas_float_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_float_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_float_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, n: rocblas_int, alpha: *const rocblas_double_complex, x: *const rocblas_double_complex, incx: rocblas_int, stridex: rocblas_stride, y: *const rocblas_double_complex, incy: rocblas_int, stridey: rocblas_stride, A: *mut rocblas_double_complex, lda: rocblas_int, strideA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details hemm performs one of the matrix-matrix operations:

C := alphaAB + betaC if side == rocblas_side_left, C := alphaBA + betaC if side == rocblas_side_right,

where alpha and beta are scalars, B and C are m by n matrices, and A is a Hermitian matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C := alphaAB + beta*C
  • rocblas_side_right: C := alphaBA + beta*C

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix
  • rocblas_fill_lower: A is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B and C. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B and C. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A and B are not referenced.

@param[in] A pointer storing matrix A on the GPU.

  • A is m by m if side == rocblas_side_left
  • A is n by n if side == rocblas_side_right Only the upper/lower triangular part is accessed. The imaginary component of the diagonal elements is not used.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] B pointer storing matrix B on the GPU. Matrix dimension is m by n

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. Matrix dimension is m by n

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m ).

source

pub unsafe fn rocblas_zhemm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details hemm_batched performs a batch of the matrix-matrix operations:

C_i := alphaA_iB_i + betaC_i if side == rocblas_side_left, C_i := alphaB_iA_i + betaC_i if side == rocblas_side_right,

where alpha and beta are scalars, B_i and C_i are m by n matrices, and A_i is a Hermitian matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C_i := alphaA_iB_i + beta*C_i
  • rocblas_side_right: C_i := alphaB_iA_i + beta*C_i

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix
  • rocblas_fill_lower: A_i is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B_i and C_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i and C_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i and B_i are not referenced.

@param[in] A device array of device pointers storing each matrix A_i on the GPU.

  • A_i is m by m if side == rocblas_side_left
  • A_i is n by n if side == rocblas_side_right Only the upper/lower triangular part is accessed. The imaginary component of the diagonal elements is not used.

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] B device array of device pointers storing each matrix B_i on the GPU. Matrix dimension is m by n

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C_i need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. Matrix dimension is m by n

@param[in] ldc rocblas_int ldc specifies the first dimension of C_i. ldc >= max( 1, m ).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhemm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_chemm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details hemm_strided_batched performs a batch of the matrix-matrix operations:

C_i := alphaA_iB_i + betaC_i if side == rocblas_side_left, C_i := alphaB_iA_i + betaC_i if side == rocblas_side_right,

where alpha and beta are scalars, B_i and C_i are m by n matrices, and A_i is a Hermitian matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C_i := alphaA_iB_i + beta*C_i
  • rocblas_side_right: C_i := alphaB_iA_i + beta*C_i

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix
  • rocblas_fill_lower: A_i is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B_i and C_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i and C_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i and B_i are not referenced.

@param[in] A device pointer to first matrix A_1

  • A_i is m by m if side == rocblas_side_left
  • A_i is n by n if side == rocblas_side_right Only the upper/lower triangular part is accessed. The imaginary component of the diagonal elements is not used.

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if side = rocblas_operation_none, ldb >= max( 1, m ), otherwise ldb >= max( 1, n ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zhemm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herk performs one of the matrix-matrix operations for a Hermitian rank-k update:

C := alpha*op( A )op( A )^H + betaC,

where alpha and beta are scalars, op(A) is an n by k matrix, and C is a n x n Hermitian matrix stored as either upper or lower.

op( A ) = A, and A is n by k if transA == rocblas_operation_none op( A ) = A^H and A is k by n if transA == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_conjugate_transpose: op(A) = A^H
  • rocblas_operation_none: op(A) = A

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if transA = rocblas_operation_none, otherwise (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_zherk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herk_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update:

C_i := alpha*op( A_i )op( A_i )^H + betaC_i,

where alpha and beta are scalars, op(A) is an n by k matrix, and C_i is a n x n Hermitian matrix stored as either upper or lower.

op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none op( A_i ) = A_i^H and A_i is k by n if transA == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_conjugate_transpose: op(A) = A^H
  • rocblas_operation_none: op(A) = A

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when transA is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zherk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herk_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update:

C_i := alpha*op( A_i )op( A_i )^H + betaC_i,

where alpha and beta are scalars, op(A) is an n by k matrix, and C_i is a n x n Hermitian matrix stored as either upper or lower.

op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none op( A_i ) = A_i^H and A_i is k by n if transA == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_conjugate_transpose: op(A) = A^H
  • rocblas_operation_none: op(A) = A

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when transA is rocblas_operation_none, otherwise of dimension (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zherk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details her2k performs one of the matrix-matrix operations for a Hermitian rank-2k update:

C := alpha*op( A )*op( B )^H + conj(alpha)*op( B )op( A )^H + betaC,

where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and C is a n x n Hermitian matrix stored as either upper or lower.

op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op( A ) = A^H, op( B ) = B^H
  • rocblas_operation_none: op( A ) = A, op( B ) = B

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] B pointer storing matrix B on the GPU. Matrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_zher2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details her2k_batched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update:

C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )op( A_i )^H + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and C_i is a n x n Hermitian matrix stored as either upper or lower.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op(A) = A^H
  • rocblas_operation_none: op(A) = A

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ). @param[in] B device array of device pointers storing each matrix_i B of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n).

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ). @param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cher2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details her2k_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-2k update:

C_i := alpha*op( A_i )*op( B_i )^H + conj(alpha)*op( B_i )op( A_i )^H + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and C_i is a n x n Hermitian matrix stored as either upper or lower.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^H, op( B_i ) = B_i^H
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n).

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zher2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herkx performs one of the matrix-matrix operations for a Hermitian rank-k update:

C := alpha*op( A )op( B )^H + betaC,

where alpha and beta are scalars, op(A) and op(B) are n by k matrices, and C is a n x n Hermitian matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian.

op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none op( A ) = A^H, op( B ) = B^H, and A and B are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op( A ) = A^H, op( B ) = B^H
  • rocblas_operation_none: op( A ) = A, op( B ) = B

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ). @param[in] B pointer storing matrix B on the GPU. Matrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_zherkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const f32, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herkx_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update:

C_i := alpha*op( A_i )op( B_i )^H + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and C_i is a n x n Hermitian matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op(A) = A^H
  • rocblas_operation_none: op(A) = A

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] B device array of device pointers storing each matrix_i B of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zherkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const f64, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cherkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details herkx_strided_batched performs a batch of the matrix-matrix operations for a Hermitian rank-k update:

C_i := alpha*op( A_i )op( B_i )^H + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrices, and C_i is a n x n Hermitian matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be Hermitian.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^H, op( B_i ) = B_i^H, and A_i and B_i are k by n if trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^H, op( B_i ) = B_i^H
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1)

@param[in] B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n).

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1)

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU. The imaginary component of the diagonal elements are not used but are set to zero unless quick return. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_zherkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details symm performs one of the matrix-matrix operations:

C := alphaAB + betaC if side == rocblas_side_left, C := alphaBA + betaC if side == rocblas_side_right,

where alpha and beta are scalars, B and C are m by n matrices, and A is a symmetric matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C := alphaAB + beta*C
  • rocblas_side_right: C := alphaBA + beta*C

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix
  • rocblas_fill_lower: A is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B and C. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B and C. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A and B are not referenced.

@param[in] A pointer storing matrix A on the GPU.

  • A is m by m if side == rocblas_side_left
  • A is n by n if side == rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] B pointer storing matrix B on the GPU. Matrix dimension is m by n

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. Matrix dimension is m by n

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m ).

source

pub unsafe fn rocblas_dsymm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details symm_batched performs a batch of the matrix-matrix operations:

C_i := alphaA_iB_i + betaC_i if side == rocblas_side_left, C_i := alphaB_iA_i + betaC_i if side == rocblas_side_right,

where alpha and beta are scalars, B_i and C_i are m by n matrices, and A_i is a symmetric matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C_i := alphaA_iB_i + beta*C_i
  • rocblas_side_right: C_i := alphaB_iA_i + beta*C_i

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix
  • rocblas_fill_lower: A_i is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B_i and C_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i and C_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i and B_i are not referenced.

@param[in] A device array of device pointers storing each matrix A_i on the GPU.

  • A_i is m by m if side == rocblas_side_left
  • A_i is n by n if side == rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] B device array of device pointers storing each matrix B_i on the GPU. Matrix dimension is m by n

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C_i need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. Matrix dimension is m by n.

@param[in] ldc rocblas_int ldc specifies the first dimension of C_i. ldc >= max( 1, m ).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsymm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssymm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details symm_strided_batched performs a batch of the matrix-matrix operations:

C_i := alphaA_iB_i + betaC_i if side == rocblas_side_left, C_i := alphaB_iA_i + betaC_i if side == rocblas_side_right,

where alpha and beta are scalars, B_i and C_i are m by n matrices, and A_i is a symmetric matrix stored as either upper or lower.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: C_i := alphaA_iB_i + beta*C_i
  • rocblas_side_right: C_i := alphaB_iA_i + beta*C_i

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A_i is an upper triangular matrix
  • rocblas_fill_lower: A_i is a lower triangular matrix

@param[in] m rocblas_int m specifies the number of rows of B_i and C_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i and C_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i and B_i are not referenced.

@param[in] A device pointer to first matrix A_1

  • A_i is m by m if side == rocblas_side_left
  • A_i is n by n if side == rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if side = rocblas_side_left, lda >= max( 1, m ), otherwise lda >= max( 1, n ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] B device pointer to first matrix B_1 of dimension (ldb, n) on the GPU.

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1). @param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device pointer to first matrix C_1 of dimension (ldc, n) on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsymm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csymm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsymm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrk performs one of the matrix-matrix operations for a symmetric rank-k update:

C := alpha*op( A )op( A )^T + betaC,

where alpha and beta are scalars, op(A) is an n by k matrix, and C is a symmetric n x n matrix stored as either upper or lower.

op( A ) = A, and A is n by k if transA == rocblas_operation_none op( A ) = A^T and A is k by n if transA == rocblas_operation_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_none: op(A) = A
  • rocblas_operation_conjugate_transpose: op(A) = A^T

rocblas_operation_conjugate_transpose is not supported for complex types. See cherk and zherk.

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if transA = rocblas_operation_none, otherwise (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. only the upper/lower triangular part is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_dsyrk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrk( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrk_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update:

C_i := alpha*op( A_i )op( A_i )^T + betaC_i,

where alpha and beta are scalars, op(A_i) is an n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none op( A_i ) = A_i^T and A_i is k by n if transA == rocblas_operation_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_none: op(A) = A
  • rocblas_operation_conjugate_transpose: op(A) = A^T

rocblas_operation_conjugate_transpose is not supported for complex types. See cherk and zherk.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when transA is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyrk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrk_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrk_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update:

C_i := alpha*op( A_i )op( A_i )^T + betaC_i,

where alpha and beta are scalars, op(A_i) is an n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

op( A_i ) = A_i, and A_i is n by k if transA == rocblas_operation_none op( A_i ) = A_i^T and A_i is k by n if transA == rocblas_operation_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] transA rocblas_operation

  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_none: op(A) = A
  • rocblas_operation_conjugate_transpose: op(A) = A^T

rocblas_operation_conjugate_transpose is not supported for complex types. See cherk and zherk.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when transA is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if transA = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU. on the GPU. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1)

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyrk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrk_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, transA: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syr2k performs one of the matrix-matrix operations for a symmetric rank-2k update:

C := alpha*(op( A )*op( B )^T + op( B )op( A )^T) + betaC,

where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and C is a symmetric n x n matrix stored as either upper or lower.

op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == rocblas_operation_transpose or for ssyr2k and dsyr2k when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A ) = A^T, op( B ) = B^T
  • rocblas_operation_none: op( A ) = A, op( B ) = B
  • rocblas_operation_conjugate_transpose: op( A ) = A^T, op( B ) = B^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyr2k and zsyr2k.

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A) and op(B). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n) only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] B pointer storing matrix B on the GPU. Matrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n) only the upper/lower triangular part is accessed.

@param[in] ldb rocblas_int ldb specifies the first dimension of B. if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ). @param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_dsyr2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2k( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syr2k_batched performs a batch of the matrix-matrix operations for a symmetric rank-2k update:

C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )op( A_i )^T) + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose or for ssyr2k_batched and dsyr2k_batched when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i
  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyr2k_batched and zsyr2k_batched.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i. if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ). @param[in] B device array of device pointers storing each matrix_i B of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n). @param[in] ldb rocblas_int ldb specifies the first dimension of B.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ). @param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ). @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyr2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2k_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyr2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syr2k_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-2k update:

C_i := alpha*(op( A_i )*op( B_i )^T + op( B_i )op( A_i )^T) + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose or for ssyr2k_strided_batched and dsyr2k_strided_batched when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i
  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyr2k_strided_batched and zsyr2k_strided_batched.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n).

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1)

@param[in] B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1)

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyr2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyr2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyr2k_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrkx performs one of the matrix-matrix operations for a symmetric rank-k update:

C := alpha*op( A )op( B )^T + betaC,

where alpha and beta are scalars, op(A) and op(B) are n by k matrix, and C is a symmetric n x n matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A )*op( B )^T will be symmetric.

op( A ) = A, op( B ) = B, and A and B are n by k if trans == rocblas_operation_none op( A ) = A^T, op( B ) = B^T, and A and B are k by n if trans == rocblas_operation_transpose or for ssyrkx and dsyrkx when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C is an upper triangular matrix
  • rocblas_fill_lower: C is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A ) = A^T, op( B ) = B^T
  • rocblas_operation_none: op( A ) = A, op( B ) = B
  • rocblas_operation_conjugate_transpose: op( A ) = A^T, op( B ) = B^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyrkx and zsyrkx.

@param[in] n rocblas_int n specifies the number of rows and columns of C. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A) and op(B). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A pointer storing matrix A on the GPU. Matrix dimension is ( lda, k ) when if trans = rocblas_operation_none, otherwise (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] B pointer storing matrix B on the GPU. Matrix dimension is ( ldb, k ) when if trans = rocblas_operation_none, otherwise (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C pointer storing matrix C on the GPU. only the upper/lower triangular part is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

source

pub unsafe fn rocblas_dsyrkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrkx( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrkx_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update:

C_i := alpha*op( A_i )op( B_i )^T + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose or for ssyrkx_batched and dsyrkx_batched when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i
  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyrkx_batched and zsyrkx_batched.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A device array of device pointers storing each matrix_i A of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] B device array of device pointers storing each matrix_i B of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n)

@param[in] ldb rocblas_int ldb specifies the first dimension of B.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C device array of device pointers storing each matrix C_i on the GPU. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyrkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrkx_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ssyrkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details syrkx_strided_batched performs a batch of the matrix-matrix operations for a symmetric rank-k update:

C_i := alpha*op( A_i )op( B_i )^T + betaC_i,

where alpha and beta are scalars, op(A_i) and op(B_i) are n by k matrix, and C_i is a symmetric n x n matrix stored as either upper or lower.

This routine should only be used when the caller can guarantee that the result of op( A_i )*op( B_i )^T will be symmetric.

op( A_i ) = A_i, op( B_i ) = B_i, and A_i and B_i are n by k if trans == rocblas_operation_none op( A_i ) = A_i^T, op( B_i ) = B_i^T, and A_i and B_i are k by n if trans == rocblas_operation_transpose or for ssyrkx_strided_batched and dsyrkx_strided_batched when trans == rocblas_operation_conjugate_transpose

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: C_i is an upper triangular matrix
  • rocblas_fill_lower: C_i is a lower triangular matrix

@param[in] trans rocblas_operation

  • rocblas_operation_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T
  • rocblas_operation_none: op( A_i ) = A_i, op( B_i ) = B_i
  • rocblas_operation_conjugate_transpose: op( A_i ) = A_i^T, op( B_i ) = B_i^T

rocblas_operation_conjugate_transpose is not supported for complex types in csyrkx_strided_batched and zsyrkx_strided_batched.

@param[in] n rocblas_int n specifies the number of rows and columns of C_i. n >= 0.

@param[in] k rocblas_int k specifies the number of columns of op(A). k >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and A need not be set before entry.

@param[in] A Device pointer to the first matrix A_1 on the GPU of dimension (lda, k) when trans is rocblas_operation_none, otherwise of dimension (lda, n)

@param[in] lda rocblas_int lda specifies the first dimension of A_i.

if trans = rocblas_operation_none, lda >= max( 1, n ), otherwise lda >= max( 1, k ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] B Device pointer to the first matrix B_1 on the GPU of dimension (ldb, k) when trans is rocblas_operation_none, otherwise of dimension (ldb, n).

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i.

if trans = rocblas_operation_none, ldb >= max( 1, n ), otherwise ldb >= max( 1, k ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1).

@param[in] beta beta specifies the scalar beta. When beta is zero then C need not be set before entry.

@param[in] C Device pointer to the first matrix C_1 on the GPU. only the upper/lower triangular part of each C_i is accessed.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, n ).

@param[inout] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_dsyrkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_csyrkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zsyrkx_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, trans: rocblas_operation, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm performs one of the matrix-matrix operations:

B := alphaop( A )B, or B := alphaBop( A ),

where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced. Here k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced. Here k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A are not referenced either, but are assumed to be unity.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A) multiplies B from the left or right as follows:

  • rocblas_side_left: B := alpha*op( A )*B
  • rocblas_side_right: B := alphaBop( A )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation Specifies the form of op(A) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A) = A
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal Specifies whether or not A is unit triangular as follows:

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.

@param[in] A Device pointer to matrix A on the GPU. A has dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[inout] B Device pointer to the first matrix B_0 on the GPU. On entry, the leading m by n part of the array B must contain the matrix B, and on exit is overwritten by the transformed matrix.

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

source

pub unsafe fn rocblas_dtrmm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm_batched performs one of the batched matrix-matrix operations:

B_i := alphaop( A_i )B_i, or B_i := alphaB_iop( A_i ) for i = 0, 1, … batch_count -1,

where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or non-unit, upper or lower triangular matrix and op( A_i ) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A_i) multiplies B_i from the left or right as follows:

  • rocblas_side_left: B_i := alpha*op( A_i )*B_i
  • rocblas_side_right: B_i := alphaB_iop( A_i )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation Specifies the form of op(A_i) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A_i) = A_i
  • rocblas_operation_transpose: op(A_i) = A_i^T
  • rocblas_operation_conjugate_transpose: op(A_i) = A_i^H

@param[in] diag rocblas_diagonal Specifies whether or not A_i is unit triangular as follows:

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i is not referenced and B_i need not be set before entry.

@param[in] A Device array of device pointers storing each matrix A_i on the GPU. Each A_i is of dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A_i are not referenced either, but are assumed to be unity.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[inout] B device array of device pointers storing each matrix B_i on the GPU. On entry, the leading m by n part of the array B_i must contain the matrix B_i, and on exit is overwritten by the transformed matrix.

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dtrmm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm_strided_batched performs one of the strided_batched matrix-matrix operations:

B_i := alphaop( A_i )B_i, or B_i := alphaB_iop( A_i ) for i = 0, 1, … batch_count -1,

where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or non-unit, upper or lower triangular matrix and op( A_i ) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A_i) multiplies B_i from the left or right as follows:

  • rocblas_side_left: B_i := alpha*op( A_i )*B_i
  • rocblas_side_right: B_i := alphaB_iop( A_i )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix
  • rocblas_fill_lower: A is a lower triangular matrix

@param[in] transA rocblas_operation Specifies the form of op(A_i) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A_i) = A_i
  • rocblas_operation_transpose: op(A_i) = A_i^T
  • rocblas_operation_conjugate_transpose: op(A_i) = A_i^H

@param[in] diag rocblas_diagonal Specifies whether or not A_i is unit triangular as follows:

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i is not referenced and B_i need not be set before entry.

@param[in] A Device pointer to the first matrix A_0 on the GPU. Each A_i is of dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A_i are not referenced either, but are assumed to be unity.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[inout] B Device pointer to the first matrix B_0 on the GPU. On entry, the leading m by n part of the array B_i must contain the matrix B_i, and on exit is overwritten by the transformed matrix.

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1). @param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dtrmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm_outofplace( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm_outofplace performs one of the matrix-matrix operations:

C := alphaop( A )B, or C := alphaBop( A ),

where alpha is a scalar, B and C are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

Note that trmm_outofplace can provide in-place functionality in the same way as trmm by passing in the same address for both matrices B and C.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A) multiplies B from the left or right as follows:

  • rocblas_side_left: C := alpha*op( A )*B
  • rocblas_side_right: C := alphaBop( A )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation Specifies the form of op(A) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A) = A
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal Specifies whether or not A is unit triangular as follows:

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.

@param[in] A Device pointer to matrix A on the GPU. A has dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A are not referenced either, but are assumed to be unity.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[in] B Device pointer to the matrix B on the GPU.

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

@param[out] C Device pointer to the matrix C on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m). If B and C pointers are to the same matrix then ldc must equal ldb or rocblas_status_invalid_size will be returned.

source

pub unsafe fn rocblas_dtrmm_outofplace( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm_outofplace( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm_outofplace( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm_outofplace_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm_outofplace_batched performs one of the batched matrix-matrix operations:

C_i := alphaop( A_i )B_i, or C_i := alphaB_iop( A_i ) for i = 0, 1, … batch_count -1,

where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or non-unit, upper or lower triangular matrix and op( A_i ) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

Note that trmm_outofplace_batched can provide in-place functionality in the same way as trmm_batched by passing in the same address for both matrices B and C.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A_i) multiplies B_i from the left or right as follows:

  • rocblas_side_left: C_i := alpha*op( A_i )*B_i
  • rocblas_side_right: C_i := alphaB_iop( A_i )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation Specifies the form of op(A_i) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A_i) = A_i
  • rocblas_operation_transpose: op(A_i) = A_i^T
  • rocblas_operation_conjugate_transpose: op(A_i) = A_i^H

@param[in] diag rocblas_diagonal Specifies whether or not A_i is unit triangular as follows:

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i is not referenced and B_i need not be set before entry.

@param[in] A Device array of device pointers storing each matrix A_i on the GPU. Each A_i is of dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A_i are not referenced either, but are assumed to be unity.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[in] B device array of device pointers storing each matrix B_i on the GPU.

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[out] C device array of device pointers storing each matrix C_i on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C. ldc >= max( 1, m). If B and C pointers are to the same matrix then ldc must equal ldb or rocblas_status_invalid_size will be returned.

@param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dtrmm_outofplace_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm_outofplace_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm_outofplace_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strmm_outofplace_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trmm_outofplace_strided_batched performs one of the strided_batched matrix-matrix operations:

C_i := alphaop( A_i )B_i, or C_i := alphaB_iop( A_i ) for i = 0, 1, … batch_count -1,

where alpha is a scalar, B_i is an m by n matrix, A_i is a unit, or non-unit, upper or lower triangular matrix and op( A_i ) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

Note that trmm_outofplace_strided_batched can provide in-place functionality in the same way as trmm_strided_batched by passing in the same address for both matrices B and C.

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side Specifies whether op(A_i) multiplies B_i from the left or right as follows:

  • rocblas_side_left: C_i := alpha*op( A_i )*B_i
  • rocblas_side_right: C_i := alphaB_iop( A_i )

@param[in] uplo rocblas_fill Specifies whether the matrix A is an upper or lower triangular matrix as follows:

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation Specifies the form of op(A_i) to be used in the matrix multiplication as follows:

  • rocblas_operation_none: op(A_i) = A_i
  • rocblas_operation_transpose: op(A_i) = A_i^T
  • rocblas_operation_conjugate_transpose: op(A_i) = A_i^H

@param[in] diag rocblas_diagonal Specifies whether or not A_i is unit triangular as follows:

  • rocblas_diagonal_unit: A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B_i. n >= 0.

@param[in] alpha alpha specifies the scalar alpha. When alpha is zero then A_i is not referenced and B_i need not be set before entry.

@param[in] A Device pointer to the first matrix A_0 on the GPU. Each A_i is of dimension ( lda, k ), where k is m when side == rocblas_side_left and is n when side == rocblas_side_right.

When uplo == rocblas_fill_upper the leading k by k upper triangular part of the array A must contain the upper triangular matrix and the strictly lower triangular part of A is not referenced.

When uplo == rocblas_fill_lower the leading k by k lower triangular part of the array A must contain the lower triangular matrix and the strictly upper triangular part of A is not referenced.

Note that when diag == rocblas_diagonal_unit the diagonal elements of A_i are not referenced either, but are assumed to be unity.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side == rocblas_side_left, lda >= max( 1, m ), if side == rocblas_side_right, lda >= max( 1, n ).

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] B Device pointer to the first matrix B_0 on the GPU.

@param[in] ldb rocblas_int ldb specifies the first dimension of B_i. ldb >= max( 1, m ).

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1).

@param[out] C Device pointer to the first matrix C_0 on the GPU.

@param[in] ldc rocblas_int ldc specifies the first dimension of C_i. ldc >= max( 1, m). If B and C pointers are to the same matrix then ldc must equal ldb or rocblas_status_invalid_size will be returned.

@param[in] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dtrmm_outofplace_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrmm_outofplace_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrmm_outofplace_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strtri( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, invA: *mut f32, ldinvA: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trtri compute the inverse of a matrix A, namely, invA and write the result into invA;

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’

if rocblas_fill_upper, the lower part of A is not referenced if rocblas_fill_lower, the upper part of A is not referenced @param[in] diag rocblas_diagonal

  • ‘rocblas_diagonal_non_unit’, A is non-unit triangular;
  • ‘rocblas_diagonal_unit’, A is unit triangular; @param[in] n rocblas_int size of matrix A and invA. @param[in] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[out] invA device pointer storing matrix invA. @param[in] ldinvA rocblas_int specifies the leading dimension of invA.
source

pub unsafe fn rocblas_dtrtri( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, invA: *mut f64, ldinvA: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrtri( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, invA: *mut rocblas_float_complex, ldinvA: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrtri( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, invA: *mut rocblas_double_complex, ldinvA: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strtri_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f32, lda: rocblas_int, invA: *const *mut f32, ldinvA: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trtri_batched compute the inverse of A_i and write into invA_i where A_i and invA_i are the i-th matrices in the batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’ @param[in] diag rocblas_diagonal

  • ‘rocblas_diagonal_non_unit’, A is non-unit triangular;
  • ‘rocblas_diagonal_unit’, A is unit triangular; @param[in] n rocblas_int @param[in] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[out] invA device array of device pointers storing the inverse of each matrix A_i. Partial inplace operation is supported. See below: -If UPLO = ‘U’, the leading N-by-N upper triangular part of the invA will store the inverse of the upper triangular matrix, and the strictly lower triangular part of invA is cleared.
  • If UPLO = ‘L’, the leading N-by-N lower triangular part of the invA will store the inverse of the lower triangular matrix, and the strictly upper triangular part of invA is cleared. @param[in] ldinvA rocblas_int specifies the leading dimension of each invA_i. @param[in] batch_count rocblas_int numbers of matrices in the batch.
source

pub unsafe fn rocblas_dtrtri_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const f64, lda: rocblas_int, invA: *const *mut f64, ldinvA: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrtri_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, invA: *const *mut rocblas_float_complex, ldinvA: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrtri_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, invA: *const *mut rocblas_double_complex, ldinvA: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strtri_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f32, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trtri_strided_batched compute the inverse of A_i and write into invA_i where A_i and invA_i are the i-th matrices in the batch, for i = 1, …, batch_count.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] uplo rocblas_fill specifies whether the upper ‘rocblas_fill_upper’ or lower ‘rocblas_fill_lower’ @param[in] diag rocblas_diagonal

  • ‘rocblas_diagonal_non_unit’, A is non-unit triangular;

  • ‘rocblas_diagonal_unit’, A is unit triangular; @param[in] n rocblas_int @param[in] A device pointer pointing to address of first matrix A_1. @param[in] lda rocblas_int specifies the leading dimension of each A. @param[in] stride_a rocblas_stride “batch stride a”: stride from the start of one A_i matrix to the next A_(i + 1). @param[out] invA device pointer storing the inverses of each matrix A_i. Partial inplace operation is supported. See below:

  • If UPLO = ‘U’, the leading N-by-N upper triangular part of the invA will store the inverse of the upper triangular matrix, and the strictly lower triangular part of invA is cleared.

  • If UPLO = ‘L’, the leading N-by-N lower triangular part of the invA will store the inverse of the lower triangular matrix, and the strictly upper triangular part of invA is cleared. @param[in] ldinvA rocblas_int specifies the leading dimension of each invA_i. @param[in] stride_invA rocblas_stride “batch stride invA”: stride from the start of one invA_i matrix to the next invA_(i + 1). @param[in] batch_count rocblas_int numbers of matrices in the batch.

source

pub unsafe fn rocblas_dtrtri_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut f64, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrtri_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_float_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrtri_strided_batched( &self, handle: rocblas_handle, uplo: rocblas_fill, diag: rocblas_diagonal, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, invA: *mut rocblas_double_complex, ldinvA: rocblas_int, stride_invA: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *mut f32, ldb: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trsm solves:

op(A)X = alphaB or Xop(A) = alphaB,

where alpha is a scalar, X and B are m by n matrices,

A is triangular matrix and op(A) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

The matrix X is overwritten on B.

Note about memory allocation: When trsm is launched with a k evenly divisible by the internal block size of 128, and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated memory found in the handle to increase overall performance. This memory can be managed by using the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory used for temporary storage will default to 1 MB and may result in chunking, which in turn may reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set to the desired chunk of right hand sides to be used at a time (where k is m when rocblas_side_left and is n when rocblas_side_right).

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB
  • rocblas_side_right: Xop(A) = alphaB

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

  • transB: op(A) = A.
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B. n >= 0.

@param[in] alpha device pointer or host pointer specifying the scalar alpha. When alpha is &zero then A is not referenced and B need not be set before entry.

@param[in] A device pointer storing matrix A. of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side = rocblas_side_left, lda >= max( 1, m ), if side = rocblas_side_right, lda >= max( 1, n ).

@param[in,out] B device pointer storing matrix B.

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

source

pub unsafe fn rocblas_dtrsm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *mut f64, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *mut rocblas_float_complex, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsm( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *mut rocblas_double_complex, ldb: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *mut f32, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trsm_batched performs the following batched operation:

op(A_i)X_i = alphaB_i or X_iop(A_i) = alphaB_i, for i = 1, …, batch_count,

where alpha is a scalar, X and B are batched m by n matrices,

A is triangular batched matrix and op(A) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

Each matrix X_i is overwritten on B_i for i = 1, …, batch_count.

Note about memory allocation: When trsm is launched with a k evenly divisible by the internal block size of 128, and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated memory found in the handle to increase overall performance. This memory can be managed by using the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory used for temporary storage will default to 1 MB and may result in chunking, which in turn may reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set to the desired chunk of right hand sides to be used at a time (where k is m when rocblas_side_left and is n when rocblas_side_right).

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB
  • rocblas_side_right: Xop(A) = alphaB @param[in] uplo rocblas_fill
  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix. @param[in] transA rocblas_operation
  • transB: op(A) = A
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H @param[in] diag rocblas_diagonal
  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. @param[in] m rocblas_int m specifies the number of rows of each B_i. m >= 0. @param[in] n rocblas_int n specifies the number of columns of each B_i. n >= 0. @param[in] alpha device pointer or host pointer specifying the scalar alpha. When alpha is &zero then A is not referenced and B need not be set before entry. @param[in] A device array of device pointers storing each matrix A_i on the GPU. Matricies are of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed. @param[in] lda rocblas_int lda specifies the first dimension of each A_i.

if side = rocblas_side_left, lda >= max( 1, m ), if side = rocblas_side_right, lda >= max( 1, n ). @param[in,out] B device array of device pointers storing each matrix B_i on the GPU. @param[in] ldb rocblas_int ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). @param[in] batch_count rocblas_int number of trsm operatons in the batch.

source

pub unsafe fn rocblas_dtrsm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *mut f64, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *mut rocblas_float_complex, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsm_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *mut rocblas_double_complex, ldb: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_strsm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f32, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details trsm_srided_batched performs the following strided batched operation:

op(A_i)X_i = alphaB_i or X_iop(A_i) = alphaB_i, for i = 1, …, batch_count,

where alpha is a scalar, X and B are strided batched m by n matrices,

A is triangular strided batched matrix and op(A) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

Each matrix X_i is overwritten on B_i for i = 1, …, batch_count.

Note about memory allocation: When trsm is launched with a k evenly divisible by the internal block size of 128, and is no larger than 10 of these blocks, the API takes advantage of utilizing pre-allocated memory found in the handle to increase overall performance. This memory can be managed by using the environment variable WORKBUF_TRSM_B_CHNK. When this variable is not set the device memory used for temporary storage will default to 1 MB and may result in chunking, which in turn may reduce performance. Under these circumstances it is recommended that WORKBUF_TRSM_B_CHNK be set to the desired chunk of right hand sides to be used at a time (where k is m when rocblas_side_left and is n when rocblas_side_right). @param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB.
  • rocblas_side_right: Xop(A) = alphaB. @param[in] uplo rocblas_fill
  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix. @param[in] transA rocblas_operation
  • transB: op(A) = A.
  • rocblas_operation_transpose: op(A) = A^T.
  • rocblas_operation_conjugate_transpose: op(A) = A^H. @param[in] diag rocblas_diagonal
  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular. @param[in] m rocblas_int m specifies the number of rows of each B_i. m >= 0. @param[in] n rocblas_int n specifies the number of columns of each B_i. n >= 0. @param[in] alpha device pointer or host pointer specifying the scalar alpha. When alpha is &zero then A is not referenced and B need not be set before entry. @param[in] A device pointer pointing to the first matrix A_1. of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed. @param[in] lda rocblas_int lda specifies the first dimension of each A_i.

if side = rocblas_side_left, lda >= max( 1, m ). if side = rocblas_side_right, lda >= max( 1, n ). @param[in] stride_a rocblas_stride stride from the start of one A_i matrix to the next A_(i + 1). @param[in,out] B device pointer pointing to the first matrix B_1. @param[in] ldb rocblas_int ldb specifies the first dimension of each B_i. ldb >= max( 1, m ). @param[in] stride_b rocblas_stride stride from the start of one B_i matrix to the next B_(i + 1). @param[in] batch_count rocblas_int number of trsm operatons in the batch.

source

pub unsafe fn rocblas_dtrsm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *mut f64, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ctrsm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_ztrsm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *mut rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemm( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, B: *const f32, ldb: rocblas_int, beta: *const f32, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details gemm performs one of the matrix-matrix operations:

C = alpha*op( A )op( B ) + betaC,

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int number or rows of matrices op( A ) and C. @param[in] n rocblas_int number of columns of matrices op( B ) and C. @param[in] k rocblas_int number of columns of matrix op( A ) and number of rows of matrix op( B ). @param[in] alpha device pointer or host pointer specifying the scalar alpha. @param[in] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] B device pointer storing matrix B. @param[in] ldb rocblas_int specifies the leading dimension of B. @param[in] beta device pointer or host pointer specifying the scalar beta. @param[in, out] C device pointer storing matrix C on the GPU. @param[in] ldc rocblas_int specifies the leading dimension of C.

source

pub unsafe fn rocblas_dgemm( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, B: *const f64, ldb: rocblas_int, beta: *const f64, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_hgemm( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, B: *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemm( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, B: *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemm( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, B: *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemm_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, B: *const *const f32, ldb: rocblas_int, beta: *const f32, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details gemm_batched performs one of the batched matrix-matrix operations:

C_i = alpha*op( A_i )op( B_i ) + betaC_i, for i = 1, …, batch_count,

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B and C are strided batched matrices, with

op( A ) an m by k by batch_count strided_batched matrix, op( B ) an k by n by batch_count strided_batched matrix and C an m by n by batch_count strided_batched matrix.

@param[in] handle [rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimention m. @param[in] n rocblas_int matrix dimention n. @param[in] k rocblas_int matrix dimention k. @param[in] alpha device pointer or host pointer specifying the scalar alpha. @param[in] A device array of device pointers storing each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] B device array of device pointers storing each matrix B_i. @param[in] ldb rocblas_int specifies the leading dimension of each B_i. @param[in] beta device pointer or host pointer specifying the scalar beta. @param[in, out] C device array of device pointers storing each matrix C_i. @param[in] ldc rocblas_int specifies the leading dimension of each C_i. @param[in] batch_count rocblas_int number of gemm operations in the batch.

source

pub unsafe fn rocblas_dgemm_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, B: *const *const f64, ldb: rocblas_int, beta: *const f64, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_hgemm_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const *const rocblas_half, lda: rocblas_int, B: *const *const rocblas_half, ldb: rocblas_int, beta: *const rocblas_half, C: *const *mut rocblas_half, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemm_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, B: *const *const rocblas_float_complex, ldb: rocblas_int, beta: *const rocblas_float_complex, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemm_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, B: *const *const rocblas_double_complex, ldb: rocblas_int, beta: *const rocblas_double_complex, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemm_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details gemm_strided_batched performs one of the strided batched matrix-matrix operations:

C_i = alpha*op( A_i )op( B_i ) + betaC_i, for i = 1, …, batch_count,

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B and C are strided batched matrices, with op( A ) an m by k by batch_count strided_batched matrix, op( B ) an k by n by batch_count strided_batched matrix and C an m by n by batch_count strided_batched matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimention m. @param[in] n rocblas_int matrix dimention n. @param[in] k rocblas_int matrix dimention k. @param[in] alpha device pointer or host pointer specifying the scalar alpha. @param[in] A device pointer pointing to the first matrix A_1. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] stride_a rocblas_stride stride from the start of one A_i matrix to the next A_(i + 1). @param[in] B device pointer pointing to the first matrix B_1. @param[in] ldb rocblas_int specifies the leading dimension of each B_i. @param[in] stride_b rocblas_stride stride from the start of one B_i matrix to the next B_(i + 1). @param[in] beta device pointer or host pointer specifying the scalar beta. @param[in, out] C device pointer pointing to the first matrix C_1. @param[in] ldc rocblas_int specifies the leading dimension of each C_i. @param[in] stride_c rocblas_stride stride from the start of one C_i matrix to the next C_(i + 1). @param[in] batch_count rocblas_int number of gemm operatons in the batch.

source

pub unsafe fn rocblas_dgemm_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_hgemm_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_hgemm_kernel_name( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_half, A: *const rocblas_half, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_half, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_half, C: *mut rocblas_half, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgemm_kernel_name( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_a: rocblas_stride, B: *const f32, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f32, C: *mut f32, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_dgemm_kernel_name( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_a: rocblas_stride, B: *const f64, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const f64, C: *mut f64, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgemm_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_float_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_float_complex, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgemm_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_a: rocblas_stride, B: *const rocblas_double_complex, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const rocblas_double_complex, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_c: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sdgmm( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, x: *const f32, incx: rocblas_int, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details dgmm performs one of the matrix-matrix operations:

C = A * diag(x) if side == rocblas_side_right C = diag(x) * A if side == rocblas_side_left

where C and A are m by n dimensional matrices. diag( x ) is a diagonal matrix and x is vector of dimension n if side == rocblas_side_right and dimension m if side == rocblas_side_left.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] side rocblas_side specifies the side of diag(x). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] x device pointer storing vector x. @param[in] incx rocblas_int specifies the increment between values of x @param[in, out] C device pointer storing matrix C. @param[in] ldc rocblas_int specifies the leading dimension of C.

source

pub unsafe fn rocblas_ddgmm( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, x: *const f64, incx: rocblas_int, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cdgmm( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, x: *const rocblas_float_complex, incx: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdgmm( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, x: *const rocblas_double_complex, incx: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sdgmm_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f32, lda: rocblas_int, x: *const *const f32, incx: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details dgmm_batched performs one of the batched matrix-matrix operations:

C_i = A_i * diag(x_i) for i = 0, 1, … batch_count-1 if side == rocblas_side_right C_i = diag(x_i) * A_i for i = 0, 1, … batch_count-1 if side == rocblas_side_left,

where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix and x_i is vector of dimension n if side == rocblas_side_right and dimension m if side == rocblas_side_left.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] side rocblas_side specifies the side of diag(x). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] A device array of device pointers storing each matrix A_i on the GPU. Each A_i is of dimension ( lda, n ). @param[in] lda rocblas_int specifies the leading dimension of A_i. @param[in] x device array of device pointers storing each vector x_i on the GPU. Each x_i is of dimension n if side == rocblas_side_right and dimension m if side == rocblas_side_left. @param[in] incx rocblas_int specifies the increment between values of x_i. @param[in, out] C device array of device pointers storing each matrix C_i on the GPU. Each C_i is of dimension ( ldc, n ). @param[in] ldc rocblas_int specifies the leading dimension of C_i. @param[in] batch_count rocblas_int number of instances in the batch.

source

pub unsafe fn rocblas_ddgmm_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const f64, lda: rocblas_int, x: *const *const f64, incx: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cdgmm_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_float_complex, lda: rocblas_int, x: *const *const rocblas_float_complex, incx: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdgmm_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const *const rocblas_double_complex, lda: rocblas_int, x: *const *const rocblas_double_complex, incx: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sdgmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, x: *const f32, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details dgmm_strided_batched performs one of the batched matrix-matrix operations:

C_i = A_i * diag(x_i) if side == rocblas_side_right for i = 0, 1, … batch_count-1 C_i = diag(x_i) * A_i if side == rocblas_side_left for i = 0, 1, … batch_count-1,

where C_i and A_i are m by n dimensional matrices. diag(x_i) is a diagonal matrix and x_i is vector of dimension n if side == rocblas_side_right and dimension m if side == rocblas_side_left.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] side rocblas_side specifies the side of diag(x). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] A device pointer to the first matrix A_0 on the GPU. Each A_i is of dimension ( lda, n ). @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1). @param[in] x pointer to the first vector x_0 on the GPU. Each x_i is of dimension n if side == rocblas_side_right and dimension m if side == rocblas_side_left. @param[in] incx rocblas_int specifies the increment between values of x. @param[in] stride_x rocblas_stride stride from the start of one vector(x_i) and the next one (x_i+1). @param[in, out] C device pointer to the first matrix C_0 on the GPU. Each C_i is of dimension ( ldc, n ). @param[in] ldc rocblas_int specifies the leading dimension of C. @param[in] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1). @param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_ddgmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, x: *const f64, incx: rocblas_int, stride_x: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cdgmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_float_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zdgmm_strided_batched( &self, handle: rocblas_handle, side: rocblas_side, m: rocblas_int, n: rocblas_int, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, x: *const rocblas_double_complex, incx: rocblas_int, stride_x: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgeam( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, beta: *const f32, B: *const f32, ldb: rocblas_int, C: *mut f32, ldc: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details geam performs one of the matrix-matrix operations:

C = alphaop( A ) + betaop( B ),

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by n matrix, op( B ) an m by n matrix, and C an m by n matrix.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] alpha device pointer or host pointer specifying the scalar alpha. @param[in] A device pointer storing matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] beta device pointer or host pointer specifying the scalar beta. @param[in] B device pointer storing matrix B. @param[in] ldb rocblas_int specifies the leading dimension of B. @param[in, out] C device pointer storing matrix C. @param[in] ldc rocblas_int specifies the leading dimension of C.

source

pub unsafe fn rocblas_dgeam( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, beta: *const f64, B: *const f64, ldb: rocblas_int, C: *mut f64, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeam( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, C: *mut rocblas_float_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeam( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, C: *mut rocblas_double_complex, ldc: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgeam_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const *const f32, lda: rocblas_int, beta: *const f32, B: *const *const f32, ldb: rocblas_int, C: *const *mut f32, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details geam_batched performs one of the batched matrix-matrix operations:

C_i = alphaop( A_i ) + betaop( B_i ) for i = 0, 1, … batch_count - 1,

where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices and op( X ) is one of

op( X ) = X or op( X ) = X**T

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] alpha device pointer or host pointer specifying the scalar alpha. @param[in] A device array of device pointers storing each matrix A_i on the GPU. Each A_i is of dimension ( lda, k ), where k is m when transA == rocblas_operation_none and is n when transA == rocblas_operation_transpose. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] beta device pointer or host pointer specifying the scalar beta. @param[in] B device array of device pointers storing each matrix B_i on the GPU. Each B_i is of dimension ( ldb, k ), where k is m when transB == rocblas_operation_none and is n when transB == rocblas_operation_transpose. @param[in] ldb rocblas_int specifies the leading dimension of B. @param[in, out] C device array of device pointers storing each matrix C_i on the GPU. Each C_i is of dimension ( ldc, n ). @param[in] ldc rocblas_int specifies the leading dimension of C.

@param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dgeam_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const *const f64, lda: rocblas_int, beta: *const f64, B: *const *const f64, ldb: rocblas_int, C: *const *mut f64, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeam_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const *const rocblas_float_complex, lda: rocblas_int, beta: *const rocblas_float_complex, B: *const *const rocblas_float_complex, ldb: rocblas_int, C: *const *mut rocblas_float_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeam_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const *const rocblas_double_complex, lda: rocblas_int, beta: *const rocblas_double_complex, B: *const *const rocblas_double_complex, ldb: rocblas_int, C: *const *mut rocblas_double_complex, ldc: rocblas_int, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_sgeam_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f32, A: *const f32, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f32, B: *const f32, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f32, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

@{ \brief BLAS Level 3 API

\details geam_strided_batched performs one of the batched matrix-matrix operations:

C_i = alphaop( A_i ) + betaop( B_i ) for i = 0, 1, … batch_count - 1,

where alpha and beta are scalars, and op(A_i), op(B_i) and C_i are m by n matrices and op( X ) is one of

op( X ) = X or op( X ) = X**T

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] transA rocblas_operation specifies the form of op( A ).

@param[in] transB rocblas_operation specifies the form of op( B ).

@param[in] m rocblas_int matrix dimension m.

@param[in] n rocblas_int matrix dimension n.

@param[in] alpha device pointer or host pointer specifying the scalar alpha.

@param[in] A device pointer to the first matrix A_0 on the GPU. Each A_i is of dimension ( lda, k ), where k is m when transA == rocblas_operation_none and is n when transA == rocblas_operation_transpose.

@param[in] lda rocblas_int specifies the leading dimension of A.

@param[in] stride_A rocblas_stride stride from the start of one matrix (A_i) and the next one (A_i+1).

@param[in] beta device pointer or host pointer specifying the scalar beta.

@param[in] B pointer to the first matrix B_0 on the GPU. Each B_i is of dimension ( ldb, k ), where k is m when transB == rocblas_operation_none and is n when transB == rocblas_operation_transpose.

@param[in] ldb rocblas_int specifies the leading dimension of B.

@param[in] stride_B rocblas_stride stride from the start of one matrix (B_i) and the next one (B_i+1)

@param[in, out] C pointer to the first matrix C_0 on the GPU. Each C_i is of dimension ( ldc, n ).

@param[in] ldc rocblas_int specifies the leading dimension of C.

@param[in] stride_C rocblas_stride stride from the start of one matrix (C_i) and the next one (C_i+1).

@param[in] batch_count rocblas_int number of instances i in the batch.

source

pub unsafe fn rocblas_dgeam_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const f64, A: *const f64, lda: rocblas_int, stride_A: rocblas_stride, beta: *const f64, B: *const f64, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut f64, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_cgeam_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_float_complex, A: *const rocblas_float_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_float_complex, B: *const rocblas_float_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_float_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_zgeam_strided_batched( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, alpha: *const rocblas_double_complex, A: *const rocblas_double_complex, lda: rocblas_int, stride_A: rocblas_stride, beta: *const rocblas_double_complex, B: *const rocblas_double_complex, ldb: rocblas_int, stride_B: rocblas_stride, C: *mut rocblas_double_complex, ldc: rocblas_int, stride_C: rocblas_stride, batch_count: rocblas_int ) -> rocblas_status

source

pub unsafe fn rocblas_gemm_ex( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32 ) -> rocblas_status

@{ \brief BLAS EX API

\details gemm_ex performs one of the matrix-matrix operations:

D = alpha*op( A )op( B ) + betaC,

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B, C, and D are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C and D are m by n matrices. C and D may point to the same matrix if their parameters are identical.

Supported types are as follows:

  • rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_f16_r = a_type = b_type; rocblas_datatype_f32_r = c_type = d_type = compute_type
  • rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_bf16_r = a_type = b_type; rocblas_datatype_f32_r = c_type = d_type = compute_type
  • rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = compute_type
  • rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type

Two int8 datatypes are supported: int8_t and rocblas_int8x4. int8_t is the C99 signed 8 bit integer. The default is int8_t and it is recommended int8_t be used. rocblas_int8x4 is a packed datatype. The packed int 8 datatype occurs if the user sets:

@code flags |= rocblas_gemm_flags_pack_int8x4; @endcode

For this packed int8 datatype matrices A and B are packed into int8x4 in the k dimension. This will impose the following size restrictions on A or B:

  • k must be a multiple of 4
  • if transA == rocblas_operation_transpose then lda must be a multiple of 4
  • if transB == rocblas_operation_none then ldb must be a multiple of 4
  • if transA == rocblas_operation_none the matrix A must have each 4 consecutive values in the k dimension packed
  • if transB == rocblas_operation_transpose the matrix B must have each 4 consecutive values in the k dimension packed.

This packing can be achieved with the following pseudo-code. The code assumes the original matrices are in A and B, and the packed matrices are A_packed and B_packed. The size of the A_packed and B_packed are the same as the size of the A and B respectively.

@code if(transA == rocblas_operation_none) { int nb = 4; for(int i_m = 0; i_m < m; i_m++) { for(int i_k = 0; i_k < k; i_k++) { A_packed[i_k % nb + (i_m + (i_k / nb) * lda) * nb] = A[i_m + i_k * lda]; } } } else { A_packed = A; } if(transB == rocblas_operation_transpose) { int nb = 4; for(int i_n = 0; i_n < m; i_n++) { for(int i_k = 0; i_k < k; i_k++) { B_packed[i_k % nb + (i_n + (i_k / nb) * ldb) * nb] = B[i_n + i_k * ldb]; } } } else { B_packed = B; } @endcode

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] k rocblas_int matrix dimension k. @param[in] alpha [const void *] device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. @param[in] a [void *] device pointer storing matrix A. @param[in] a_type rocblas_datatype specifies the datatype of matrix A. @param[in] lda rocblas_int specifies the leading dimension of A. @param[in] b [void *] device pointer storing matrix B. @param[in] b_type rocblas_datatype specifies the datatype of matrix B. @param[in] ldb rocblas_int specifies the leading dimension of B. @param[in] beta [const void *] device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. @param[in] c [void *] device pointer storing matrix C. @param[in] c_type rocblas_datatype specifies the datatype of matrix C. @param[in] ldc rocblas_int specifies the leading dimension of C. @param[out] d [void *] device pointer storing matrix D. If d and c pointers are to the same matrix then d_type must equal c_type and ldd must equal ldc or the respective invalid status will be returned. @param[in] d_type rocblas_datatype specifies the datatype of matrix D. @param[in] ldd rocblas_int specifies the leading dimension of D. @param[in] compute_type rocblas_datatype specifies the datatype of computation. @param[in] algo rocblas_gemm_algo enumerant specifying the algorithm type. @param[in] solution_index [int32_t] reserved for future use. @param[in] flags [uint32_t] optional gemm flags.

source

pub unsafe fn rocblas_gemm_batched_ex( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32 ) -> rocblas_status

@{ \brief BLAS EX API

\details gemm_batched_ex performs one of the batched matrix-matrix operations: D_i = alpha*op(A_i)op(B_i) + betaC_i, for i = 1, …, batch_count. where op( X ) is one of op( X ) = X or op( X ) = XT or op( X ) = XH, alpha and beta are scalars, and A, B, C, and D are batched pointers to matrices, with op( A ) an m by k by batch_count batched matrix, op( B ) a k by n by batch_count batched matrix and C and D are m by n by batch_count batched matrices. The batched matrices are an array of pointers to matrices. The number of pointers to matrices is batch_count. C and D may point to the same matrices if their parameters are identical.

Supported types are as follows:

  • rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = compute_type
  • rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type

Two int8 datatypes are supported: int8_t and rocblas_int8x4. int8_t is the C99 signed 8 bit integer. The default is int8_t and it is recommended int8_t be used. rocblas_int8x4 is a packed datatype. The packed int 8 datatype occurs if the user sets:

@code flags |= rocblas_gemm_flags_pack_int8x4; @endcode

For this packed int8 datatype matrices A and B are packed into int8x4 in the k dimension. This will impose the following size restrictions on A or B:

  • k must be a multiple of 4
  • if transA == rocblas_operation_transpose then lda must be a multiple of 4
  • if transB == rocblas_operation_none then ldb must be a multiple of 4
  • if transA == rocblas_operation_none the matrix A must have each 4 consecutive values in the k dimension packed
  • if transB == rocblas_operation_transpose the matrix B must have each 4 consecutive values in the k dimension packed.

This packing can be achieved with the following pseudo-code. The code assumes the original matrices are in A and B, and the packed matrices are A_packed and B_packed. The size of the A_packed and B_packed are the same as the size of the A and B respectively.

@code if(transA == rocblas_operation_none) { int nb = 4; for(int i_m = 0; i_m < m; i_m++) { for(int i_k = 0; i_k < k; i_k++) { A_packed[i_k % nb + (i_m + (i_k / nb) * lda) * nb] = A[i_m + i_k * lda]; } } } else { A_packed = A; } if(transB == rocblas_operation_transpose) { int nb = 4; for(int i_n = 0; i_n < m; i_n++) { for(int i_k = 0; i_k < k; i_k++) { B_packed[i_k % nb + (i_n + (i_k / nb) * ldb) * nb] = B[i_n + i_k * ldb]; } } } else { B_packed = B; } @endcode @param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] k rocblas_int matrix dimension k. @param[in] alpha [const void *] device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. @param[in] a [void *] device pointer storing array of pointers to each matrix A_i. @param[in] a_type rocblas_datatype specifies the datatype of each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] b [void *] device pointer storing array of pointers to each matrix B_i. @param[in] b_type rocblas_datatype specifies the datatype of each matrix B_i. @param[in] ldb rocblas_int specifies the leading dimension of each B_i. @param[in] beta [const void *] device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. @param[in] c [void *] device array of device pointers to each matrix C_i. @param[in] c_type rocblas_datatype specifies the datatype of each matrix C_i. @param[in] ldc rocblas_int specifies the leading dimension of each C_i. @param[out] d [void *] device array of device pointers to each matrix D_i. If d and c are the same array of matrix pointers then d_type must equal c_type and ldd must equal ldc or the respective invalid status will be returned. @param[in] d_type rocblas_datatype specifies the datatype of each matrix D_i. @param[in] ldd rocblas_int specifies the leading dimension of each D_i. @param[in] batch_count rocblas_int number of gemm operations in the batch. @param[in] compute_type rocblas_datatype specifies the datatype of computation. @param[in] algo rocblas_gemm_algo enumerant specifying the algorithm type. @param[in] solution_index [int32_t] reserved for future use. @param[in] flags [uint32_t] optional gemm flags.

source

pub unsafe fn rocblas_gemm_strided_batched_ex( &self, handle: rocblas_handle, transA: rocblas_operation, transB: rocblas_operation, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, lda: rocblas_int, stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, ldb: rocblas_int, stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, ldc: rocblas_int, stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, ldd: rocblas_int, stride_d: rocblas_stride, batch_count: rocblas_int, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32 ) -> rocblas_status

@{ \brief BLAS EX API

\details gemm_strided_batched_ex performs one of the strided_batched matrix-matrix operations:

D_i = alpha*op(A_i)op(B_i) + betaC_i, for i = 1, …, batch_count

where op( X ) is one of

op( X ) = X or op( X ) = XT or op( X ) = XH,

alpha and beta are scalars, and A, B, C, and D are strided_batched matrices, with op( A ) an m by k by batch_count strided_batched matrix, op( B ) a k by n by batch_count strided_batched matrix and C and D are m by n by batch_count strided_batched matrices. C and D may point to the same matrices if their parameters are identical.

The strided_batched matrices are multiple matrices separated by a constant stride. The number of matrices is batch_count.

Supported types are as follows:

  • rocblas_datatype_f64_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f32_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_bf16_r = a_type = b_type = c_type = d_type; rocblas_datatype_f32_r = compute_type
  • rocblas_datatype_i8_r = a_type = b_type; rocblas_datatype_i32_r = c_type = d_type = compute_type
  • rocblas_datatype_f32_c = a_type = b_type = c_type = d_type = compute_type
  • rocblas_datatype_f64_c = a_type = b_type = c_type = d_type = compute_type

Two int8 datatypes are supported: int8_t and rocblas_int8x4. int8_t is the C99 signed 8 bit integer. The default is int8_t and it is recommended int8_t be used. rocblas_int8x4 is a packed datatype. The packed int 8 datatype occurs if the user sets:

@code flags |= rocblas_gemm_flags_pack_int8x4; @endcode

For this packed int8 datatype matrices A and B are packed into int8x4 in the k dimension. This will impose the following size restrictions on A or B:

  • k must be a multiple of 4
  • if transA == rocblas_operation_transpose then lda must be a multiple of 4
  • if transB == rocblas_operation_none then ldb must be a multiple of 4
  • if transA == rocblas_operation_none the matrix A must have each 4 consecutive values in the k dimension packed
  • if transB == rocblas_operation_transpose the matrix B must have each 4 consecutive values in the k dimension packed.

This packing can be achieved with the following pseudo-code. The code assumes the original matrices are in A and B, and the packed matrices are A_packed and B_packed. The size of the A_packed and B_packed are the same as the size of the A and B respectively.

@code if(transA == rocblas_operation_none) { int nb = 4; for(int i_m = 0; i_m < m; i_m++) { for(int i_k = 0; i_k < k; i_k++) { A_packed[i_k % nb + (i_m + (i_k / nb) * lda) * nb] = A[i_m + i_k * lda]; } } } else { A_packed = A; } if(transB == rocblas_operation_transpose) { int nb = 4; for(int i_n = 0; i_n < m; i_n++) { for(int i_k = 0; i_k < k; i_k++) { B_packed[i_k % nb + (i_n + (i_k / nb) * ldb) * nb] = B[i_n + i_k * ldb]; } } } else { B_packed = B; } @endcode

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] transA rocblas_operation specifies the form of op( A ). @param[in] transB rocblas_operation specifies the form of op( B ). @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] k rocblas_int matrix dimension k. @param[in] alpha [const void *] device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. @param[in] a [void *] device pointer pointing to first matrix A_1. @param[in] a_type rocblas_datatype specifies the datatype of each matrix A_i. @param[in] lda rocblas_int specifies the leading dimension of each A_i. @param[in] stride_a rocblas_stride specifies stride from start of one A_i matrix to the next A_(i + 1). @param[in] b [void *] device pointer pointing to first matrix B_1. @param[in] b_type rocblas_datatype specifies the datatype of each matrix B_i. @param[in] ldb rocblas_int specifies the leading dimension of each B_i. @param[in] stride_b rocblas_stride specifies stride from start of one B_i matrix to the next B_(i + 1). @param[in] beta [const void *] device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. @param[in] c [void *] device pointer pointing to first matrix C_1. @param[in] c_type rocblas_datatype specifies the datatype of each matrix C_i. @param[in] ldc rocblas_int specifies the leading dimension of each C_i. @param[in] stride_c rocblas_stride specifies stride from start of one C_i matrix to the next C_(i + 1). @param[out] d [void *] device pointer storing each matrix D_i. If d and c pointers are to the same matrix then d_type must equal c_type and ldd must equal ldc and stride_d must equal stride_c or the respective invalid status will be returned. @param[in] d_type rocblas_datatype specifies the datatype of each matrix D_i. @param[in] ldd rocblas_int specifies the leading dimension of each D_i. @param[in] stride_d rocblas_stride specifies stride from start of one D_i matrix to the next D_(i + 1). @param[in] batch_count rocblas_int number of gemm operations in the batch. @param[in] compute_type rocblas_datatype specifies the datatype of computation. @param[in] algo rocblas_gemm_algo enumerant specifying the algorithm type. @param[in] solution_index [int32_t] reserved for future use. @param[in] flags [uint32_t] optional gemm flags.

source

pub unsafe fn rocblas_gemm_ext2( &self, handle: rocblas_handle, m: rocblas_int, n: rocblas_int, k: rocblas_int, alpha: *const c_void, a: *const c_void, a_type: rocblas_datatype, row_stride_a: rocblas_stride, col_stride_a: rocblas_stride, b: *const c_void, b_type: rocblas_datatype, row_stride_b: rocblas_stride, col_stride_b: rocblas_stride, beta: *const c_void, c: *const c_void, c_type: rocblas_datatype, row_stride_c: rocblas_stride, col_stride_c: rocblas_stride, d: *mut c_void, d_type: rocblas_datatype, row_stride_d: rocblas_stride, col_stride_d: rocblas_stride, compute_type: rocblas_datatype, algo: rocblas_gemm_algo, solution_index: i32, flags: u32 ) -> rocblas_status

@{ \brief BLAS EX API

\details gemm_ext2 performs the matrix-matrix operations:

D = alpha * A * B + beta * C,

alpha and beta are scalars, and A, B, C, and D are matrices, with A a m by k matrtix, B a k by n matrix, and C and D are m by n matrices. Each matrix A, B, C, D has independent row and column strides.

This is a beta feature.

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] m rocblas_int matrix dimension m. @param[in] n rocblas_int matrix dimension n. @param[in] k rocblas_int matrix dimension k. @param[in] alpha [const void *] device pointer or host pointer specifying the scalar alpha. Same datatype as compute_type. @param[in] a [void *] device pointer storing matrix A. @param[in] a_type rocblas_datatype specifies the datatype of matrix A. @param[in] row_stride_a rocblas_int specifies the row stride of A. @param[in] col_stride_a rocblas_int specifies the column stride of A. @param[in] b [void *] device pointer storing matrix B. @param[in] b_type rocblas_datatype specifies the datatype of matrix B. @param[in] row_stride_b rocblas_int specifies the row stride of B. @param[in] col_stride_b rocblas_int specifies the column stride of B. @param[in] beta [const void *] device pointer or host pointer specifying the scalar beta. Same datatype as compute_type. @param[in] c [void *] device pointer storing matrix C. @param[in] c_type rocblas_datatype specifies the datatype of matrix C. @param[in] row_stride_c rocblas_int specifies the row stride of C. @param[in] col_stride_c rocblas_int specifies the column stride of C. @param[out] d [void *] device pointer storing matrix D. @param[in] d_type rocblas_datatype specifies the datatype of matrix D. @param[in] row_stride_d rocblas_int specifies the row stride of D. @param[in] col_stride_d rocblas_int specifies the column stride of D. @param[in] compute_type rocblas_datatype specifies the datatype of computation. @param[in] algo rocblas_gemm_algo enumerant specifying the algorithm type. @param[in] solution_index [int32_t] reserved for future use. @param[in] flags [uint32_t] optional gemm flags.

source

pub unsafe fn rocblas_trsm_ex( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details trsm_ex solves:

op(A)X = alphaB or Xop(A) = alphaB,

where alpha is a scalar, X and B are m by n matrices, A is triangular matrix and op(A) is one of

op( A ) = A or op( A ) = A^T or op( A ) = A^H.

The matrix X is overwritten on B.

This function gives the user the ability to reuse the invA matrix between runs. If invA == NULL, rocblas_trsm_ex will automatically calculate invA on every run.

Setting up invA: The accepted invA matrix consists of the packed 128x128 inverses of the diagonal blocks of matrix A, followed by any smaller diagonal block that remains. To set up invA it is recommended that rocblas_trtri_batched be used with matrix A as the input.

Device memory of size 128 x k should be allocated for invA ahead of time, where k is m when rocblas_side_left and is n when rocblas_side_right. The actual number of elements in invA should be passed as invA_size.

To begin, rocblas_trtri_batched must be called on the full 128x128-sized diagonal blocks of matrix A. Below are the restricted parameters:

  • n = 128
  • ldinvA = 128
  • stride_invA = 128x128
  • batch_count = k / 128,

Then any remaining block may be added:

  • n = k % 128
  • invA = invA + stride_invA * previous_batch_count
  • ldinvA = 128
  • batch_count = 1

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB
  • rocblas_side_right: Xop(A) = alphaB

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: A is an upper triangular matrix.
  • rocblas_fill_lower: A is a lower triangular matrix.

@param[in] transA rocblas_operation

  • transB: op(A) = A.
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: A is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: A is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of B. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of B. n >= 0.

@param[in] alpha [void *] device pointer or host pointer specifying the scalar alpha. When alpha is &zero then A is not referenced, and B need not be set before entry.

@param[in] A [void *] device pointer storing matrix A. of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side = rocblas_side_left, lda >= max( 1, m ), if side = rocblas_side_right, lda >= max( 1, n ).

@param[in, out] B [void *] device pointer storing matrix B. B is of dimension ( ldb, n ). Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.

@param[in] ldb rocblas_int ldb specifies the first dimension of B. ldb >= max( 1, m ).

@param[in] invA [void *] device pointer storing the inverse diagonal blocks of A. invA is of dimension ( ld_invA, k ), where k is m when rocblas_side_left and is n when rocblas_side_right. ld_invA must be equal to 128.

@param[in] invA_size rocblas_int invA_size specifies the number of elements of device memory in invA.

@param[in] compute_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_trsm_batched_ex( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, B: *mut c_void, ldb: rocblas_int, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, compute_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details trsm_batched_ex solves:

op(A_i)X_i = alphaB_i or X_iop(A_i) = alphaB_i,

for i = 1, …, batch_count; and where alpha is a scalar, X and B are arrays of m by n matrices, A is an array of triangular matrix and each op(A_i) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

Each matrix X_i is overwritten on B_i.

This function gives the user the ability to reuse the invA matrix between runs. If invA == NULL, rocblas_trsm_batched_ex will automatically calculate each invA_i on every run.

Setting up invA: Each accepted invA_i matrix consists of the packed 128x128 inverses of the diagonal blocks of matrix A_i, followed by any smaller diagonal block that remains. To set up each invA_i it is recommended that rocblas_trtri_batched be used with matrix A_i as the input. invA is an array of pointers of batch_count length holding each invA_i.

Device memory of size 128 x k should be allocated for each invA_i ahead of time, where k is m when rocblas_side_left and is n when rocblas_side_right. The actual number of elements in each invA_i should be passed as invA_size.

To begin, rocblas_trtri_batched must be called on the full 128x128-sized diagonal blocks of each matrix A_i. Below are the restricted parameters:

  • n = 128
  • ldinvA = 128
  • stride_invA = 128x128
  • batch_count = k / 128,

Then any remaining block may be added:

  • n = k % 128
  • invA = invA + stride_invA * previous_batch_count
  • ldinvA = 128
  • batch_count = 1

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB
  • rocblas_side_right: Xop(A) = alphaB

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • transB: op(A) = A.
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of each B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of each B_i. n >= 0.

@param[in] alpha [void *] device pointer or host pointer alpha specifying the scalar alpha. When alpha is &zero then A is not referenced, and B need not be set before entry.

@param[in] A [void *] device array of device pointers storing each matrix A_i. each A_i is of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of each A_i.

if side = rocblas_side_left, lda >= max( 1, m ), if side = rocblas_side_right, lda >= max( 1, n ).

@param[in, out] B [void *] device array of device pointers storing each matrix B_i. each B_i is of dimension ( ldb, n ). Before entry, the leading m by n part of the array B_i must contain the right-hand side matrix B_i, and on exit is overwritten by the solution matrix X_i

@param[in] ldb rocblas_int ldb specifies the first dimension of each B_i. ldb >= max( 1, m ).

@param[in] batch_count rocblas_int specifies how many batches.

@param[in] invA [void *] device array of device pointers storing the inverse diagonal blocks of each A_i. each invA_i is of dimension ( ld_invA, k ), where k is m when rocblas_side_left and is n when rocblas_side_right. ld_invA must be equal to 128.

@param[in] invA_size rocblas_int invA_size specifies the number of elements of device memory in each invA_i.

@param[in] compute_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_trsm_strided_batched_ex( &self, handle: rocblas_handle, side: rocblas_side, uplo: rocblas_fill, transA: rocblas_operation, diag: rocblas_diagonal, m: rocblas_int, n: rocblas_int, alpha: *const c_void, A: *const c_void, lda: rocblas_int, stride_A: rocblas_stride, B: *mut c_void, ldb: rocblas_int, stride_B: rocblas_stride, batch_count: rocblas_int, invA: *const c_void, invA_size: rocblas_int, stride_invA: rocblas_stride, compute_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details trsm_strided_batched_ex solves:

op(A_i)X_i = alphaB_i or X_iop(A_i) = alphaB_i,

for i = 1, …, batch_count; and where alpha is a scalar, X and B are strided batched m by n matrices, A is a strided batched triangular matrix and op(A_i) is one of

op( A_i ) = A_i or op( A_i ) = A_i^T or op( A_i ) = A_i^H.

Each matrix X_i is overwritten on B_i.

This function gives the user the ability to reuse each invA_i matrix between runs. If invA == NULL, rocblas_trsm_batched_ex will automatically calculate each invA_i on every run.

Setting up invA: Each accepted invA_i matrix consists of the packed 128x128 inverses of the diagonal blocks of matrix A_i, followed by any smaller diagonal block that remains. To set up invA_i it is recommended that rocblas_trtri_batched be used with matrix A_i as the input. invA is a contiguous piece of memory holding each invA_i.

Device memory of size 128 x k should be allocated for each invA_i ahead of time, where k is m when rocblas_side_left and is n when rocblas_side_right. The actual number of elements in each invA_i should be passed as invA_size.

To begin, rocblas_trtri_batched must be called on the full 128x128-sized diagonal blocks of each matrix A_i. Below are the restricted parameters:

  • n = 128
  • ldinvA = 128
  • stride_invA = 128x128
  • batch_count = k / 128

Then any remaining block may be added:

  • n = k % 128
  • invA = invA + stride_invA * previous_batch_count
  • ldinvA = 128
  • batch_count = 1

@param[in] handle rocblas_handle handle to the rocblas library context queue.

@param[in] side rocblas_side

  • rocblas_side_left: op(A)X = alphaB
  • rocblas_side_right: Xop(A) = alphaB

@param[in] uplo rocblas_fill

  • rocblas_fill_upper: each A_i is an upper triangular matrix.
  • rocblas_fill_lower: each A_i is a lower triangular matrix.

@param[in] transA rocblas_operation

  • transB: op(A) = A.
  • rocblas_operation_transpose: op(A) = A^T
  • rocblas_operation_conjugate_transpose: op(A) = A^H

@param[in] diag rocblas_diagonal

  • rocblas_diagonal_unit: each A_i is assumed to be unit triangular.
  • rocblas_diagonal_non_unit: each A_i is not assumed to be unit triangular.

@param[in] m rocblas_int m specifies the number of rows of each B_i. m >= 0.

@param[in] n rocblas_int n specifies the number of columns of each B_i. n >= 0.

@param[in] alpha [void *] device pointer or host pointer specifying the scalar alpha. When alpha is &zero then A is not referenced, and B need not be set before entry.

@param[in] A [void *] device pointer storing matrix A. of dimension ( lda, k ), where k is m when rocblas_side_left and is n when rocblas_side_right only the upper/lower triangular part is accessed.

@param[in] lda rocblas_int lda specifies the first dimension of A.

if side = rocblas_side_left, lda >= max( 1, m ), if side = rocblas_side_right, lda >= max( 1, n ).

@param[in] stride_A rocblas_stride The stride between each A matrix.

@param[in, out] B [void *] device pointer pointing to first matrix B_i. each B_i is of dimension ( ldb, n ). Before entry, the leading m by n part of each array B_i must contain the right-hand side of matrix B_i, and on exit is overwritten by the solution matrix X_i.

@param[in] ldb rocblas_int ldb specifies the first dimension of each B_i. ldb >= max( 1, m ).

@param[in] stride_B rocblas_stride The stride between each B_i matrix.

@param[in] batch_count rocblas_int specifies how many batches.

@param[in] invA [void *] device pointer storing the inverse diagonal blocks of each A_i. invA points to the first invA_1. each invA_i is of dimension ( ld_invA, k ), where k is m when rocblas_side_left and is n when rocblas_side_right. ld_invA must be equal to 128.

@param[in] invA_size rocblas_int invA_size specifies the number of elements of device memory in each invA_i.

@param[in] stride_invA rocblas_stride The stride between each invA matrix.

@param[in] compute_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_axpy_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details axpy_ex computes constant alpha multiplied by vector x, plus vector y.

y := alpha * x + y

Currently supported datatypes are as follows:


alpha_typex_typey_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
f32_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[in] alpha device pointer or host pointer to specify the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[in] x device pointer storing vector x. @param[in] x_type rocblas_datatype specifies the datatype of vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[inout] y device pointer storing vector y. @param[in] y_type rocblas_datatype specifies the datatype of vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_axpy_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details axpy_batched_ex computes constant alpha multiplied by vector x, plus vector y over a set of batched vectors.

y := alpha * x + y

Currently supported datatypes are as follows:


alpha_typex_typey_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
f32_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] alpha device pointer or host pointer to specify the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[in] x device array of device pointers storing each vector x_i. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[inout] y device array of device pointers storing each vector y_i. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] batch_count rocblas_int number of instances in the batch. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_axpy_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stridey: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details axpy_strided_batched_ex computes constant alpha multiplied by vector x, plus vector y over a set of strided batched vectors.

y := alpha * x + y

Currently supported datatypes are as follows:


alpha_typex_typey_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
f32_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] alpha device pointer or host pointer to specify the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[in] x device pointer to the first vector x_1. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) to the next one (x_i+1). There are no restrictions placed on stridex. However, ensure that stridex is of appropriate size. For a typical case this means stridex >= n * incx. @param[inout] y device pointer to the first vector y_1. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stridey rocblas_stride stride from the start of one vector (y_i) to the next one (y_i+1). There are no restrictions placed on stridey. However, ensure that stridey is of appropriate size. For a typical case this means stridey >= n * incy. @param[in] batch_count rocblas_int number of instances in the batch. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_dot_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details dot_ex performs the dot product of vectors x and y.

result = x * y;

dotc_ex performs the dot product of the conjugate of complex vector x and complex vector y

result = conjugate (x) * y;

Currently supported datatypes are as follows:


x_typey_typeresult_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
bf16_rbf16_rbf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x and y. @param[in] x device pointer storing vector x. @param[in] x_type rocblas_datatype specifies the datatype of vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[in] y device pointer storing vector y. @param[in] y_type rocblas_datatype specifies the datatype of vector y. @param[in] incy rocblas_int specifies the increment for the elements of y. @param[inout] result device pointer or host pointer to store the dot product. return is 0.0 if n <= 0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_dotc_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

source

pub unsafe fn rocblas_dot_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details dot_batched_ex performs a batch of dot products of vectors x and y.

result_i = x_i * y_i;

dotc_batched_ex performs a batch of dot products of the conjugate of complex vector x and complex vector y

result_i = conjugate (x_i) * y_i;

where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors, for i = 1, …, batch_count

Currently supported datatypes are as follows:


x_typey_typeresult_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
bf16_rbf16_rbf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] y device array of device pointers storing each vector y_i. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] batch_count rocblas_int number of instances in the batch. @param[inout] result device array or host array of batch_count size to store the dot products of each batch. return 0.0 for each element if n <= 0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_dotc_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

source

pub unsafe fn rocblas_dot_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details dot_strided_batched_ex performs a batch of dot products of vectors x and y.

result_i = x_i * y_i;

dotc_strided_batched_ex performs a batch of dot products of the conjugate of complex vector x and complex vector y

result_i = conjugate (x_i) * y_i;

where (x_i, y_i) is the i-th instance of the batch. x_i and y_i are vectors, for i = 1, …, batch_count

Currently supported datatypes are as follows:


x_typey_typeresult_typeexecution_type
f16_rf16_rf16_rf16_r
f16_rf16_rf16_rf32_r
bf16_rbf16_rbf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f64_cf64_cf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in each x_i and y_i. @param[in] x device pointer to the first vector (x_1) in the batch. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1) @param[in] y device pointer to the first vector (y_1) in the batch. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment for the elements of each y_i. @param[in] stride_y rocblas_stride stride from the start of one vector (y_i) and the next one (y_i+1) @param[in] batch_count rocblas_int number of instances in the batch. @param[inout] result device array or host array of batch_count size to store the dot products of each batch. return 0.0 for each element if n <= 0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_dotc_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *const c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, batch_count: rocblas_int, result: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

source

pub unsafe fn rocblas_nrm2_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS_EX API

\details nrm2_ex computes the euclidean norm of a real or complex vector.

result := sqrt( x’x ) for real vectors result := sqrt( x**Hx ) for complex vectors

Currently supported datatypes are as follows:


x_typeresultexecution_type
f16_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_rf32_r
f64_cf64_rf64_r

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] x device pointer storing vector x. @param[in] x_type rocblas_datatype specifies the datatype of the vector x. @param[in] incx rocblas_int specifies the increment for the elements of y. @param[inout] results device pointer or host pointer to store the nrm2 product. return is 0.0 if n, incx<=0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_nrm2_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS_EX API

\details nrm2_batched_ex computes the euclidean norm over a batch of real or complex vectors.

result := sqrt( x_i’x_i ) for real vectors x, for i = 1, …, batch_count result := sqrt( x_i**Hx_i ) for complex vectors x, for i = 1, …, batch_count

Currently supported datatypes are as follows:


x_typeresultexecution_type
f16_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_rf32_r
f64_cf64_rf64_r

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i. @param[in] x device array of device pointers storing each vector x_i. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] batch_count rocblas_int number of instances in the batch. @param[out] results device pointer or host pointer to array of batch_count size for nrm2 results. return is 0.0 for each element if n <= 0, incx<=0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_nrm2_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *const c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, batch_count: rocblas_int, results: *mut c_void, result_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS_EX API

\details nrm2_strided_batched_ex computes the euclidean norm over a batch of real or complex vectors.

result := sqrt( x_i’x_i ) for real vectors x, for i = 1, …, batch_count result := sqrt( x_i**Hx_i ) for complex vectors, for i = 1, …, batch_count

Currently supported datatypes are as follows:


x_typeresultexecution_type
f16_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_rf32_r
f64_cf64_rf64_r

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i. @param[in] x device pointer to the first vector x_1. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. incx must be > 0. @param[in] stride_x rocblas_stride stride from the start of one vector (x_i) and the next one (x_i+1). There are no restrictions placed on stride_x. However, ensure that stride_x is of appropriate size. For a typical case this means stride_x >= n * incx. @param[in] batch_count rocblas_int number of instances in the batch. @param[out] results device pointer or host pointer to array for storing contiguous batch_count results. return is 0.0 for each element if n <= 0, incx<=0. @param[in] result_type rocblas_datatype specifies the datatype of the result. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_rot_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details rot_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to vectors x and y. Scalars c and s may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

In the case where cs_type is real:

x := c * x + s * y y := c * y - s * x

In the case where cs_type is complex, the imaginary part of c is ignored:

x := real(c) * x + s * y y := real(c) * y - conj(s) * x

Currently supported datatypes are as follows:


x_typey_typecs_typeexecution_type
bf16_rbf16_rbf16_rf32_r
f16_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f32_cf32_cf32_rf32_c
f64_cf64_cf64_cf64_c
f64_cf64_cf64_rf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in the x and y vectors. @param[inout] x device pointer storing vector x. @param[in] x_type rocblas_datatype specifies the datatype of vector x. @param[in] incx rocblas_int specifies the increment between elements of x. @param[inout] y device pointer storing vector y. @param[in] y_type rocblas_datatype specifies the datatype of vector y. @param[in] incy rocblas_int specifies the increment between elements of y. @param[in] c device pointer or host pointer storing scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer storing scalar sine component of the rotation matrix. @param[in] cs_type rocblas_datatype specifies the datatype of c and s. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_rot_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details rot_batched_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to batched vectors x_i and y_i, for i = 1, …, batch_count. Scalars c and s may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

In the case where cs_type is real:

x := c * x + s * y y := c * y - s * x

In the case where cs_type is complex, the imaginary part of c is ignored:

x := real(c) * x + s * y y := real(c) * y - conj(s) * x

Currently supported datatypes are as follows:


x_typey_typecs_typeexecution_type
bf16_rbf16_rbf16_rf32_r
f16_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f32_cf32_cf32_rf32_c
f64_cf64_cf64_cf64_c
f64_cf64_cf64_rf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i and y_i vectors. @param[inout] x device array of deivce pointers storing each vector x_i. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[inout] y device array of device pointers storing each vector y_i. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] c device pointer or host pointer to scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer to scalar sine component of the rotation matrix. @param[in] cs_type rocblas_datatype specifies the datatype of c and s. @param[in] batch_count rocblas_int the number of x and y arrays, the number of batches. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_rot_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stride_x: rocblas_stride, y: *mut c_void, y_type: rocblas_datatype, incy: rocblas_int, stride_y: rocblas_stride, c: *const c_void, s: *const c_void, cs_type: rocblas_datatype, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS Level 1 API

\details rot_strided_batched_ex applies the Givens rotation matrix defined by c=cos(alpha) and s=sin(alpha) to strided batched vectors x_i and y_i, for i = 1, …, batch_count. Scalars c and s may be stored in either host or device memory. Location is specified by calling rocblas_set_pointer_mode.

In the case where cs_type is real:

x := c * x + s * y y := c * y - s * x

In the case where cs_type is complex, the imaginary part of c is ignored:

x := real(c) * x + s * y y := real(c) * y - conj(s) * x

Currently supported datatypes are as follows:


x_typey_typecs_typeexecution_type
bf16_rbf16_rbf16_rf32_r
f16_rf16_rf16_rf32_r
f32_rf32_rf32_rf32_r
f64_rf64_rf64_rf64_r
f32_cf32_cf32_cf32_c
f32_cf32_cf32_rf32_c
f64_cf64_cf64_cf64_c
f64_cf64_cf64_rf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int number of elements in each x_i and y_i vectors. @param[inout] x device pointer to the first vector x_1. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment between elements of each x_i. @param[in] stride_x rocblas_stride specifies the increment from the beginning of x_i to the beginning of x_(i+1) @param[inout] y device pointer to the first vector y_1. @param[in] y_type rocblas_datatype specifies the datatype of each vector y_i. @param[in] incy rocblas_int specifies the increment between elements of each y_i. @param[in] stride_y rocblas_stride specifies the increment from the beginning of y_i to the beginning of y_(i+1) @param[in] c device pointer or host pointer to scalar cosine component of the rotation matrix. @param[in] s device pointer or host pointer to scalar sine component of the rotation matrix. @param[in] cs_type rocblas_datatype specifies the datatype of c and s. @param[in] batch_count rocblas_int the number of x and y arrays, the number of batches. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_scal_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details scal_ex scales each element of vector x with scalar alpha.

x := alpha * x

Currently supported datatypes are as follows:


alpha_typex_typeexecution_type
f16_rf16_rf16_r
f16_rf16_rf32_r
f32_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_cf32_c
f64_cf64_cf64_c
f32_rf32_cf32_c
f64_rf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] alpha device pointer or host pointer for the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[inout] x device pointer storing vector x. @param[in] x_type rocblas_datatype specifies the datatype of vector x. @param[in] incx rocblas_int specifies the increment for the elements of x. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_scal_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details scal_batched_ex scales each element of each vector x_i with scalar alpha.

x_i := alpha * x_i

Currently supported datatypes are as follows:


alpha_typex_typeexecution_type
f16_rf16_rf16_r
f16_rf16_rf32_r
f32_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_cf32_c
f64_cf64_cf64_c
f32_rf32_cf32_c
f64_rf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] alpha device pointer or host pointer for the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[inout] x device array of device pointers storing each vector x_i. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] batch_count rocblas_int number of instances in the batch. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_scal_strided_batched_ex( &self, handle: rocblas_handle, n: rocblas_int, alpha: *const c_void, alpha_type: rocblas_datatype, x: *mut c_void, x_type: rocblas_datatype, incx: rocblas_int, stridex: rocblas_stride, batch_count: rocblas_int, execution_type: rocblas_datatype ) -> rocblas_status

@{ \brief BLAS EX API

\details scal_strided_batched_ex scales each element of vector x with scalar alpha over a set of strided batched vectors.

x := alpha * x

Currently supported datatypes are as follows:


alpha_typex_typeexecution_type
f16_rf16_rf16_r
f16_rf16_rf32_r
f32_rf16_rf32_r
f32_rf32_rf32_r
f64_rf64_rf64_r
f32_cf32_cf32_c
f64_cf64_cf64_c
f32_rf32_cf32_c
f64_rf64_cf64_c

@param[in] handle rocblas_handle handle to the rocblas library context queue. @param[in] n rocblas_int the number of elements in x. @param[in] alpha device pointer or host pointer for the scalar alpha. @param[in] alpha_type rocblas_datatype specifies the datatype of alpha. @param[inout] x device pointer to the first vector x_1. @param[in] x_type rocblas_datatype specifies the datatype of each vector x_i. @param[in] incx rocblas_int specifies the increment for the elements of each x_i. @param[in] stridex rocblas_stride stride from the start of one vector (x_i) to the next one (x_i+1). There are no restrictions placed on stridex. However, ensure that stridex is of appropriate size. For a typical case this means stridex >= n * incx. @param[in] batch_count rocblas_int number of instances in the batch. @param[in] execution_type rocblas_datatype specifies the datatype of computation.

source

pub unsafe fn rocblas_status_to_string( &self, status: rocblas_status ) -> *const c_char

BLAS Auxiliary API

\details rocblas_status_to_string

Returns string representing rocblas_status value

@param[in] status rocblas_status rocBLAS status to convert to string

source

pub unsafe fn rocblas_initialize(&self)

\brief Initialize rocBLAS on the current HIP device, to avoid costly startup time at the first call on that device. \details

Calling rocblas_initialize() allows upfront initialization including device specific kernel setup. Otherwise this function is automatically called on the first function call that requires these initializations (mainly GEMM).

source

pub unsafe fn rocblas_get_version_string( &self, buf: *mut c_char, len: usize ) -> rocblas_status

\brief Loads char* buf with the rocblas library version. size_t len is the maximum length of char* buf. \details

@param[in, out] buf pointer to buffer for version string

@param[in] len length of buf

source

pub unsafe fn rocblas_get_version_string_size( &self, len: *mut usize ) -> rocblas_status

\brief Queries the minimum buffer size for a successful call to \ref rocblas_get_version_string \details

@param[out] len pointer to size_t for storing the length

source

pub unsafe fn rocblas_start_device_memory_size_query( &self, handle: rocblas_handle ) -> rocblas_status

\brief \details Indicates that subsequent rocBLAS kernel calls should collect the optimal device memory size in bytes for their given kernel arguments and keep track of the maximum. Each kernel call can reuse temporary device memory on the same stream so the maximum is collected. Returns rocblas_status_size_query_mismatch if another size query is already in progress; returns rocblas_status_success otherwise @param[in] handle rocblas handle

source

pub unsafe fn rocblas_stop_device_memory_size_query( &self, handle: rocblas_handle, size: *mut usize ) -> rocblas_status

\brief \details Stops collecting optimal device memory size information. Returns rocblas_status_size_query_mismatch if a collection is not underway; rocblas_status_invalid_handle if handle is nullptr; rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise @param[in] handle rocblas handle @param[out] size maximum of the optimal sizes collected

source

pub unsafe fn rocblas_is_device_memory_size_query( &self, handle: rocblas_handle ) -> bool

source

pub unsafe fn rocblas_device_malloc_success( &self, ptr: *mut rocblas_device_malloc_base ) -> bool

source

pub unsafe fn rocblas_device_malloc_ptr( &self, ptr: *mut rocblas_device_malloc_base, res: *mut *mut c_void ) -> rocblas_status

source

pub unsafe fn rocblas_device_malloc_get( &self, ptr: *mut rocblas_device_malloc_base, index: usize, res: *mut *mut c_void ) -> rocblas_status

source

pub unsafe fn rocblas_device_malloc_free( &self, ptr: *mut rocblas_device_malloc_base ) -> rocblas_status

source

pub unsafe fn rocblas_device_malloc_set_default_memory_size(&self, size: usize)

source

pub unsafe fn rocblas_get_device_memory_size( &self, handle: rocblas_handle, size: *mut usize ) -> rocblas_status

\brief \details Gets the current device memory size for the handle. Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise @param[in] handle rocblas handle @param[out] size current device memory size for the handle

source

pub unsafe fn rocblas_set_device_memory_size( &self, handle: rocblas_handle, size: usize ) -> rocblas_status

\brief \details Changes the size of allocated device memory at runtime.

Any previously allocated device memory managed by the handle is freed.

If size > 0 sets the device memory size to the specified size (in bytes). If size == 0, frees the memory allocated so far, and lets rocBLAS manage device memory in the future, expanding it when necessary. Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_invalid_pointer if size is nullptr; rocblas_status_success otherwise @param[in] handle rocblas handle @param[in] size size of allocated device memory

source

pub unsafe fn rocblas_set_workspace( &self, handle: rocblas_handle, addr: *mut c_void, size: usize ) -> rocblas_status

\brief \details Sets the device workspace for the handle to use.

Any previously allocated device memory managed by the handle is freed.

Returns rocblas_status_invalid_handle if handle is nullptr; rocblas_status_success otherwise @param[in] handle rocblas handle @param[in] addr address of workspace memory @param[in] size size of workspace memory

source

pub unsafe fn rocblas_is_managing_device_memory( &self, handle: rocblas_handle ) -> bool

\brief \details Returns true when device memory in handle is managed by rocBLAS @param[in] handle rocblas handle

source

pub unsafe fn rocblas_is_user_managing_device_memory( &self, handle: rocblas_handle ) -> bool

\brief \details Returns true when device memory in handle is managed by the user @param[in] handle rocblas handle

source

pub unsafe fn rocblas_abort(&self) -> !

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.