CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
7298 lines
333 KiB
Fortran
7298 lines
333 KiB
Fortran
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
! Copyright (C) 2020-2026 Advanced Micro Devices, Inc. All rights Reserved.
|
|
!
|
|
! Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
! of this software and associated documentation files (the "Software"), to deal
|
|
! in the Software without restriction, including without limitation the rights
|
|
! to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
! copies of the Software, and to permit persons to whom the Software is
|
|
! furnished to do so, subject to the following conditions:
|
|
!
|
|
! The above copyright notice and this permission notice shall be included in
|
|
! all copies or substantial portions of the Software.
|
|
!
|
|
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
! IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
! FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
! AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
! LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
! THE SOFTWARE.
|
|
!
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
module rocsparse
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
|
|
! ===========================================================================
|
|
! auxiliary SPARSE
|
|
! ===========================================================================
|
|
|
|
interface
|
|
|
|
! rocsparse_handle
|
|
function rocsparse_create_handle(handle) &
|
|
bind(c, name = 'rocsparse_create_handle')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_create_handle
|
|
type(c_ptr) :: handle
|
|
end function rocsparse_create_handle
|
|
|
|
function rocsparse_handle_create(handle, stream, p_error) &
|
|
bind(c, name = 'rocsparse_handle_create')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_handle_create
|
|
type(c_ptr) :: handle
|
|
type(c_ptr), value :: stream
|
|
type(c_ptr), value :: p_error
|
|
end function rocsparse_handle_create
|
|
|
|
function rocsparse_destroy_handle(handle) &
|
|
bind(c, name = 'rocsparse_destroy_handle')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_destroy_handle
|
|
type(c_ptr), value :: handle
|
|
end function rocsparse_destroy_handle
|
|
|
|
! rocsparse_stream
|
|
function rocsparse_set_stream(handle, stream) &
|
|
bind(c, name = 'rocsparse_set_stream')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_stream
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: stream
|
|
end function rocsparse_set_stream
|
|
|
|
function rocsparse_get_stream(handle, stream) &
|
|
bind(c, name = 'rocsparse_get_stream')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_stream
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr) :: stream
|
|
end function rocsparse_get_stream
|
|
|
|
! rocsparse_pointer_mode
|
|
function rocsparse_set_pointer_mode(handle, pointer_mode) &
|
|
bind(c, name = 'rocsparse_set_pointer_mode')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_pointer_mode
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: pointer_mode
|
|
end function rocsparse_set_pointer_mode
|
|
|
|
function rocsparse_get_pointer_mode(handle, pointer_mode) &
|
|
bind(c, name = 'rocsparse_get_pointer_mode')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_pointer_mode
|
|
type(c_ptr), value :: handle
|
|
integer(c_int) :: pointer_mode
|
|
end function rocsparse_get_pointer_mode
|
|
|
|
! rocsparse_version
|
|
function rocsparse_get_version(handle, version) &
|
|
bind(c, name = 'rocsparse_get_version')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_version
|
|
type(c_ptr), value :: handle
|
|
integer(c_int) :: version
|
|
end function rocsparse_get_version
|
|
|
|
function rocsparse_get_git_rev(handle, rev) &
|
|
bind(c, name = 'rocsparse_get_git_rev')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_git_rev
|
|
type(c_ptr), value :: handle
|
|
character(c_char) :: rev(*)
|
|
end function rocsparse_get_git_rev
|
|
|
|
! rocsparse_mat_descr
|
|
function rocsparse_create_mat_descr(descr) &
|
|
bind(c, name = 'rocsparse_create_mat_descr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_create_mat_descr
|
|
type(c_ptr) :: descr
|
|
end function rocsparse_create_mat_descr
|
|
|
|
function rocsparse_copy_mat_descr(dest, src) &
|
|
bind(c, name = 'rocsparse_copy_mat_descr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_copy_mat_descr
|
|
type(c_ptr), value :: dest
|
|
type(c_ptr), intent(in), value :: src
|
|
end function rocsparse_copy_mat_descr
|
|
|
|
function rocsparse_destroy_mat_descr(descr) &
|
|
bind(c, name = 'rocsparse_destroy_mat_descr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_destroy_mat_descr
|
|
type(c_ptr), value :: descr
|
|
end function rocsparse_destroy_mat_descr
|
|
|
|
! rocsparse_index_base
|
|
function rocsparse_set_mat_index_base(descr, base) &
|
|
bind(c, name = 'rocsparse_set_mat_index_base')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_index_base
|
|
type(c_ptr), value :: descr
|
|
integer(c_int), value :: base
|
|
end function rocsparse_set_mat_index_base
|
|
|
|
function rocsparse_get_mat_index_base(descr) &
|
|
bind(c, name = 'rocsparse_get_mat_index_base')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_mat_index_base
|
|
type(c_ptr), intent(in), value :: descr
|
|
end function rocsparse_get_mat_index_base
|
|
|
|
! rocsparse_matrix_type
|
|
function rocsparse_set_mat_type(descr, mat_type) &
|
|
bind(c, name = 'rocsparse_set_mat_type')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_type
|
|
type(c_ptr), value :: descr
|
|
integer(c_int), value :: mat_type
|
|
end function rocsparse_set_mat_type
|
|
|
|
function rocsparse_get_mat_type(descr) &
|
|
bind(c, name = 'rocsparse_get_mat_type')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_mat_type
|
|
type(c_ptr), intent(in), value :: descr
|
|
end function rocsparse_get_mat_type
|
|
|
|
! rocsparse_fill_mode
|
|
function rocsparse_set_mat_fill_mode(descr, fill_mode) &
|
|
bind(c, name = 'rocsparse_set_mat_fill_mode')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_fill_mode
|
|
type(c_ptr), value :: descr
|
|
integer(c_int), value :: fill_mode
|
|
end function rocsparse_set_mat_fill_mode
|
|
|
|
function rocsparse_get_mat_fill_mode(descr) &
|
|
bind(c, name = 'rocsparse_get_mat_fill_mode')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_mat_fill_mode
|
|
type(c_ptr), intent(in), value :: descr
|
|
end function rocsparse_get_mat_fill_mode
|
|
|
|
! rocsparse_diag_type
|
|
function rocsparse_set_mat_diag_type(descr, diag_type) &
|
|
bind(c, name = 'rocsparse_set_mat_diag_type')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_set_mat_diag_type
|
|
type(c_ptr), value :: descr
|
|
integer(c_int), value :: diag_type
|
|
end function rocsparse_set_mat_diag_type
|
|
|
|
function rocsparse_get_mat_diag_type(descr) &
|
|
bind(c, name = 'rocsparse_get_mat_diag_type')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_get_mat_diag_type
|
|
type(c_ptr), intent(in), value :: descr
|
|
end function rocsparse_get_mat_diag_type
|
|
|
|
! rocsparse_hyb_mat
|
|
function rocsparse_create_hyb_mat(hyb) &
|
|
bind(c, name = 'rocsparse_create_hyb_mat')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_create_hyb_mat
|
|
type(c_ptr) :: hyb
|
|
end function rocsparse_create_hyb_mat
|
|
|
|
function rocsparse_destroy_hyb_mat(hyb) &
|
|
bind(c, name = 'rocsparse_destroy_hyb_mat')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_destroy_hyb_mat
|
|
type(c_ptr), value :: hyb
|
|
end function rocsparse_destroy_hyb_mat
|
|
|
|
! rocsparse_mat_info
|
|
function rocsparse_create_mat_info(info) &
|
|
bind(c, name = 'rocsparse_create_mat_info')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_create_mat_info
|
|
type(c_ptr) :: info
|
|
end function rocsparse_create_mat_info
|
|
|
|
function rocsparse_destroy_mat_info(info) &
|
|
bind(c, name = 'rocsparse_destroy_mat_info')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_destroy_mat_info
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_destroy_mat_info
|
|
|
|
! ===========================================================================
|
|
! level 1 SPARSE
|
|
! ===========================================================================
|
|
|
|
! rocsparse_axpyi
|
|
function rocsparse_saxpyi(handle, nnz, alpha, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_saxpyi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_saxpyi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_saxpyi
|
|
|
|
function rocsparse_daxpyi(handle, nnz, alpha, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_daxpyi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_daxpyi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_daxpyi
|
|
|
|
function rocsparse_caxpyi(handle, nnz, alpha, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_caxpyi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_caxpyi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_caxpyi
|
|
|
|
function rocsparse_zaxpyi(handle, nnz, alpha, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_zaxpyi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zaxpyi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zaxpyi
|
|
|
|
! rocsparse_doti
|
|
function rocsparse_sdoti(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_sdoti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sdoti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_sdoti
|
|
|
|
function rocsparse_ddoti(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_ddoti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ddoti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_ddoti
|
|
|
|
function rocsparse_cdoti(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_cdoti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cdoti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_cdoti
|
|
|
|
function rocsparse_zdoti(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_zdoti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zdoti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
complex(c_double_complex) :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zdoti
|
|
|
|
! rocsparse_dotci
|
|
function rocsparse_cdotci(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_cdotci')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cdotci
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_cdotci
|
|
|
|
function rocsparse_zdotci(handle, nnz, x_val, x_ind, y, result, idx_base) &
|
|
bind(c, name = 'rocsparse_zdotci')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zdotci
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: result
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zdotci
|
|
|
|
! rocsparse_gthr
|
|
function rocsparse_sgthr(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_sgthr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgthr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_sgthr
|
|
|
|
function rocsparse_dgthr(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_dgthr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgthr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_dgthr
|
|
|
|
function rocsparse_cgthr(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_cgthr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgthr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_cgthr
|
|
|
|
function rocsparse_zgthr(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_zgthr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgthr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zgthr
|
|
|
|
! rocsparse_gthrz
|
|
function rocsparse_sgthrz(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_sgthrz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgthrz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_sgthrz
|
|
|
|
function rocsparse_dgthrz(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_dgthrz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgthrz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_dgthrz
|
|
|
|
function rocsparse_cgthrz(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_cgthrz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgthrz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_cgthrz
|
|
|
|
function rocsparse_zgthrz(handle, nnz, y, x_val, x_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_zgthrz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgthrz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zgthrz
|
|
|
|
! rocsparse_roti
|
|
function rocsparse_sroti(handle, nnz, x_val, x_ind, y, c, s, idx_base) &
|
|
bind(c, name = 'rocsparse_sroti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sroti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), intent(in), value :: c
|
|
type(c_ptr), intent(in), value :: s
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_sroti
|
|
|
|
function rocsparse_droti(handle, nnz, x_val, x_ind, y, c, s, idx_base) &
|
|
bind(c, name = 'rocsparse_droti')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_droti
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
type(c_ptr), intent(in), value :: c
|
|
type(c_ptr), intent(in), value :: s
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_droti
|
|
|
|
! rocsparse_sctr
|
|
function rocsparse_ssctr(handle, nnz, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_ssctr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ssctr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_ssctr
|
|
|
|
function rocsparse_dsctr(handle, nnz, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_dsctr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dsctr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_dsctr
|
|
|
|
function rocsparse_csctr(handle, nnz, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_csctr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csctr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_csctr
|
|
|
|
function rocsparse_zsctr(handle, nnz, x_val, x_ind, y, idx_base) &
|
|
bind(c, name = 'rocsparse_zsctr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zsctr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: x_val
|
|
type(c_ptr), intent(in), value :: x_ind
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_zsctr
|
|
|
|
! ===========================================================================
|
|
! level 2 SPARSE
|
|
! ===========================================================================
|
|
|
|
! rocsparse_bsrmv
|
|
function rocsparse_sbsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_sbsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_sbsrmv
|
|
|
|
function rocsparse_dbsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dbsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dbsrmv
|
|
|
|
function rocsparse_cbsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_cbsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_cbsrmv
|
|
|
|
function rocsparse_zbsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zbsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zbsrmv
|
|
|
|
! rocsparse_bsrsv_zero_pivot
|
|
function rocsparse_bsrsv_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_bsrsv_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsrsv_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_bsrsv_zero_pivot
|
|
|
|
! rocsparse_bsrsv_buffer_size
|
|
function rocsparse_sbsrsv_buffer_size(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_sbsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sbsrsv_buffer_size
|
|
|
|
function rocsparse_dbsrsv_buffer_size(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dbsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dbsrsv_buffer_size
|
|
|
|
function rocsparse_cbsrsv_buffer_size(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_cbsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cbsrsv_buffer_size
|
|
|
|
function rocsparse_zbsrsv_buffer_size(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zbsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zbsrsv_buffer_size
|
|
|
|
! rocsparse_bsrsv_analysis
|
|
function rocsparse_sbsrsv_analysis(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, analysis, solve, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsrsv_analysis
|
|
|
|
function rocsparse_dbsrsv_analysis(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, analysis, solve, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsrsv_analysis
|
|
|
|
function rocsparse_cbsrsv_analysis(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, analysis, solve, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsrsv_analysis
|
|
|
|
function rocsparse_zbsrsv_analysis(handle, dir, trans, mb, nnzb, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, analysis, solve, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsrsv_analysis
|
|
|
|
! rocsparse_bsrsv_clear
|
|
function rocsparse_bsrsv_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_bsrsv_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsrsv_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_bsrsv_clear
|
|
|
|
! rocsparse_bsrsv_solve
|
|
function rocsparse_sbsrsv_solve(handle, dir, trans, mb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, y, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsrsv_solve
|
|
|
|
function rocsparse_dbsrsv_solve(handle, dir, trans, mb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, y, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsrsv_solve
|
|
|
|
function rocsparse_cbsrsv_solve(handle, dir, trans, mb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, y, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsrsv_solve
|
|
|
|
function rocsparse_zbsrsv_solve(handle, dir, trans, mb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, bsr_dim, info, x, y, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: bsr_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsrsv_solve
|
|
|
|
! rocsparse_coomv
|
|
function rocsparse_scoomv(handle, trans, m, n, nnz, alpha, descr, coo_val, &
|
|
coo_row_ind, coo_col_ind, x, beta, y) &
|
|
bind(c, name = 'rocsparse_scoomv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scoomv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_scoomv
|
|
|
|
function rocsparse_dcoomv(handle, trans, m, n, nnz, alpha, descr, coo_val, &
|
|
coo_row_ind, coo_col_ind, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dcoomv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcoomv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dcoomv
|
|
|
|
function rocsparse_ccoomv(handle, trans, m, n, nnz, alpha, descr, coo_val, &
|
|
coo_row_ind, coo_col_ind, x, beta, y) &
|
|
bind(c, name = 'rocsparse_ccoomv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccoomv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_ccoomv
|
|
|
|
function rocsparse_zcoomv(handle, trans, m, n, nnz, alpha, descr, coo_val, &
|
|
coo_row_ind, coo_col_ind, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zcoomv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcoomv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zcoomv
|
|
|
|
! rocsparse_csrmv_analysis
|
|
function rocsparse_scsrmv_analysis(handle, trans, m, n, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info) &
|
|
bind(c, name = 'rocsparse_scsrmv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_scsrmv_analysis
|
|
|
|
function rocsparse_dcsrmv_analysis(handle, trans, m, n, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info) &
|
|
bind(c, name = 'rocsparse_dcsrmv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_dcsrmv_analysis
|
|
|
|
function rocsparse_ccsrmv_analysis(handle, trans, m, n, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info) &
|
|
bind(c, name = 'rocsparse_ccsrmv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv_analysis
|
|
type(c_ptr), intent(in), value :: handle
|
|
integer(c_int), intent(in), value :: trans
|
|
integer(c_int), intent(in), value :: m
|
|
integer(c_int), intent(in), value :: n
|
|
integer(c_int), intent(in), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_ccsrmv_analysis
|
|
|
|
function rocsparse_zcsrmv_analysis(handle, trans, m, n, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info) &
|
|
bind(c, name = 'rocsparse_zcsrmv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_zcsrmv_analysis
|
|
|
|
! rocsparse_csrmv_clear
|
|
function rocsparse_csrmv_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_csrmv_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrmv_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_csrmv_clear
|
|
|
|
! rocsparse_csrmv
|
|
function rocsparse_scsrmv(handle, trans, m, n, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_scsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_scsrmv
|
|
|
|
function rocsparse_dcsrmv(handle, trans, m, n, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dcsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dcsrmv
|
|
|
|
function rocsparse_ccsrmv(handle, trans, m, n, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_ccsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_ccsrmv
|
|
|
|
function rocsparse_zcsrmv(handle, trans, m, n, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zcsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zcsrmv
|
|
|
|
! rocsparse_csrsv_zero_pivot
|
|
function rocsparse_csrsv_zero_pivot(handle, descr, info, position) &
|
|
bind(c, name = 'rocsparse_csrsv_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsv_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_csrsv_zero_pivot
|
|
|
|
! rocsparse_csrsv_buffer_size
|
|
function rocsparse_scsrsv_buffer_size(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_scsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsrsv_buffer_size
|
|
|
|
function rocsparse_dcsrsv_buffer_size(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsrsv_buffer_size
|
|
|
|
function rocsparse_ccsrsv_buffer_size(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsrsv_buffer_size
|
|
|
|
function rocsparse_zcsrsv_buffer_size(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsrsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsrsv_buffer_size
|
|
|
|
! rocsparse_csrsv_analysis
|
|
function rocsparse_scsrsv_analysis(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrsv_analysis
|
|
|
|
function rocsparse_dcsrsv_analysis(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrsv_analysis
|
|
|
|
function rocsparse_ccsrsv_analysis(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrsv_analysis
|
|
|
|
function rocsparse_zcsrsv_analysis(handle, trans, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrsv_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrsv_analysis
|
|
|
|
! rocsparse_csrsv_clear
|
|
function rocsparse_csrsv_clear(handle, descr, info) &
|
|
bind(c, name = 'rocsparse_csrsv_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsv_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_csrsv_clear
|
|
|
|
! rocsparse_csrsv_solve
|
|
function rocsparse_scsrsv_solve(handle, trans, m, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, y, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrsv_solve
|
|
|
|
function rocsparse_dcsrsv_solve(handle, trans, m, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, y, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrsv_solve
|
|
|
|
function rocsparse_ccsrsv_solve(handle, trans, m, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, y, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrsv_solve
|
|
|
|
function rocsparse_zcsrsv_solve(handle, trans, m, nnz, alpha, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, x, y, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrsv_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsv_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
compleX(c_double_complex), intent(in) :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), value :: y
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrsv_solve
|
|
|
|
! rocsparse_ellmv
|
|
function rocsparse_sellmv(handle, trans, m, n, alpha, descr, ell_val, &
|
|
ell_col_ind, ell_width, x, beta, y) &
|
|
bind(c, name = 'rocsparse_sellmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sellmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_sellmv
|
|
|
|
function rocsparse_dellmv(handle, trans, m, n, alpha, descr, ell_val, &
|
|
ell_col_ind, ell_width, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dellmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dellmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dellmv
|
|
|
|
function rocsparse_cellmv(handle, trans, m, n, alpha, descr, ell_val, &
|
|
ell_col_ind, ell_width, x, beta, y) &
|
|
bind(c, name = 'rocsparse_cellmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cellmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_cellmv
|
|
|
|
function rocsparse_zellmv(handle, trans, m, n, alpha, descr, ell_val, &
|
|
ell_col_ind, ell_width, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zellmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zellmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zellmv
|
|
|
|
! rocsparse_hybmv
|
|
function rocsparse_shybmv(handle, trans, alpha, descr, hyb, x, beta, y) &
|
|
bind(c, name = 'rocsparse_shybmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_shybmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_shybmv
|
|
|
|
function rocsparse_dhybmv(handle, trans, alpha, descr, hyb, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dhybmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dhybmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dhybmv
|
|
|
|
function rocsparse_chybmv(handle, trans, alpha, descr, hyb, x, beta, y) &
|
|
bind(c, name = 'rocsparse_chybmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_chybmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_chybmv
|
|
|
|
function rocsparse_zhybmv(handle, trans, alpha, descr, hyb, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zhybmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zhybmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zhybmv
|
|
|
|
! rocsparse_gebsrmv
|
|
function rocsparse_sgebsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, row_block_dim, col_block_dim, x, beta, y) &
|
|
bind(c, name = 'rocsparse_sgebsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_sgebsrmv
|
|
|
|
function rocsparse_dgebsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, row_block_dim, col_block_dim, x, beta, y) &
|
|
bind(c, name = 'rocsparse_dgebsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_dgebsrmv
|
|
|
|
function rocsparse_cgebsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, row_block_dim, col_block_dim, x, beta, y) &
|
|
bind(c, name = 'rocsparse_cgebsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_cgebsrmv
|
|
|
|
function rocsparse_zgebsrmv(handle, dir, trans, mb, nb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, row_block_dim, col_block_dim, x, beta, y) &
|
|
bind(c, name = 'rocsparse_zgebsrmv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsrmv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: x
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: y
|
|
end function rocsparse_zgebsrmv
|
|
|
|
! ===========================================================================
|
|
! level 3 SPARSE
|
|
! ===========================================================================
|
|
! rocsparse_bsrmm
|
|
function rocsparse_sbsrmm(handle, dir, trans_A, trans_B, mb, n, kb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_sbsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: kb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_sbsrmm
|
|
|
|
function rocsparse_dbsrmm(handle, dir, trans_A, trans_B, mb, n, kb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_dbsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: kb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_dbsrmm
|
|
|
|
function rocsparse_cbsrmm(handle, dir, trans_A, trans_B, mb, n, kb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_cbsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: kb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_cbsrmm
|
|
|
|
function rocsparse_zbsrmm(handle, dir, trans_A, trans_B, mb, n, kb, nnzb, alpha, descr, &
|
|
bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_zbsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: kb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_zbsrmm
|
|
|
|
! rocsparse_csrmm
|
|
function rocsparse_scsrmm(handle, trans_A, trans_B, m, n, k, nnz, alpha, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_scsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_scsrmm
|
|
|
|
function rocsparse_dcsrmm(handle, trans_A, trans_B, m, n, k, nnz, alpha, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_dcsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_dcsrmm
|
|
|
|
function rocsparse_ccsrmm(handle, trans_A, trans_B, m, n, k, nnz, alpha, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_ccsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_ccsrmm
|
|
|
|
function rocsparse_zcsrmm(handle, trans_A, trans_B, m, n, k, nnz, alpha, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, B, ldb, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_zcsrmm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrmm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_zcsrmm
|
|
|
|
! rocsparse_csrsm_zero_pivot
|
|
function rocsparse_csrsm_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_csrsm_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsm_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_csrsm_zero_pivot
|
|
|
|
! rocsparse_csrsm_buffer_size
|
|
function rocsparse_scsrsm_buffer_size(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_scsrsm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsrsm_buffer_size
|
|
|
|
function rocsparse_dcsrsm_buffer_size(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsrsm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsrsm_buffer_size
|
|
|
|
function rocsparse_ccsrsm_buffer_size(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsrsm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsrsm_buffer_size
|
|
|
|
function rocsparse_zcsrsm_buffer_size(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsrsm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsrsm_buffer_size
|
|
|
|
! rocsparse_csrsm_analysis
|
|
function rocsparse_scsrsm_analysis(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, &
|
|
analysis, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrsm_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrsm_analysis
|
|
|
|
function rocsparse_dcsrsm_analysis(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, &
|
|
analysis, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrsm_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrsm_analysis
|
|
|
|
function rocsparse_ccsrsm_analysis(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, &
|
|
analysis, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrsm_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrsm_analysis
|
|
|
|
function rocsparse_zcsrsm_analysis(handle, trans_A, trans_B, m, nrhs, nnz, &
|
|
alpha, descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, &
|
|
analysis, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrsm_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrsm_analysis
|
|
|
|
! rocsparse_csrsm_clear
|
|
function rocsparse_csrsm_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_csrsm_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsm_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_csrsm_clear
|
|
|
|
! rocsparse_csrsm_solve
|
|
function rocsparse_scsrsm_solve(handle, trans_A, trans_B, m, nrhs, nnz, alpha, &
|
|
descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrsm_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrsm_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrsm_solve
|
|
|
|
function rocsparse_dcsrsm_solve(handle, trans_A, trans_B, m, nrhs, nnz, alpha, &
|
|
descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrsm_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrsm_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrsm_solve
|
|
|
|
function rocsparse_ccsrsm_solve(handle, trans_A, trans_B, m, nrhs, nnz, alpha, &
|
|
descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrsm_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrsm_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrsm_solve
|
|
|
|
function rocsparse_zcsrsm_solve(handle, trans_A, trans_B, m, nrhs, nnz, alpha, &
|
|
descr, csr_val, csr_row_ptr, csr_col_ind, B, ldb, info, policy, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrsm_solve')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrsm_solve
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nrhs
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrsm_solve
|
|
|
|
! rocsparse_gemmi
|
|
function rocsparse_sgemmi(handle, trans_A, trans_B, m, n, k, nnz, alpha, A, &
|
|
lda, descr, csr_val, csr_row_ptr, csr_col_ind, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_sgemmi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgemmi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_sgemmi
|
|
|
|
function rocsparse_dgemmi(handle, trans_A, trans_B, m, n, k, nnz, alpha, A, &
|
|
lda, descr, csr_val, csr_row_ptr, csr_col_ind, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_dgemmi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgemmi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_dgemmi
|
|
|
|
function rocsparse_cgemmi(handle, trans_A, trans_B, m, n, k, nnz, alpha, A, &
|
|
lda, descr, csr_val, csr_row_ptr, csr_col_ind, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_cgemmi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgemmi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_cgemmi
|
|
|
|
function rocsparse_zgemmi(handle, trans_A, trans_B, m, n, k, nnz, alpha, A, &
|
|
lda, descr, csr_val, csr_row_ptr, csr_col_ind, beta, C, ldc) &
|
|
bind(c, name = 'rocsparse_zgemmi')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgemmi
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), value :: C
|
|
integer(c_int), value :: ldc
|
|
end function rocsparse_zgemmi
|
|
|
|
! ===========================================================================
|
|
! extra SPARSE
|
|
! ===========================================================================
|
|
|
|
! rocsparse_csrgeam_nnz
|
|
function rocsparse_csrgeam_nnz(handle, m, n, descr_A, nnz_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, csr_col_ind_B, descr_C, &
|
|
csr_row_ptr_C, nnz_C) &
|
|
bind(c, name = 'rocsparse_csrgeam_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrgeam_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_C
|
|
end function rocsparse_csrgeam_nnz
|
|
|
|
! rocsparse_csrgeam
|
|
function rocsparse_scsrgeam(handle, m, n, alpha, descr_A, nnz_A, csr_val_A, &
|
|
csr_row_ptr_A, csr_col_ind_A, beta, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, descr_C, csr_val_C, csr_row_ptr_C, &
|
|
csr_col_ind_C) &
|
|
bind(c, name = 'rocsparse_scsrgeam')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrgeam
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
end function rocsparse_scsrgeam
|
|
|
|
function rocsparse_dcsrgeam(handle, m, n, alpha, descr_A, nnz_A, csr_val_A, &
|
|
csr_row_ptr_A, csr_col_ind_A, beta, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, descr_C, csr_val_C, csr_row_ptr_C, &
|
|
csr_col_ind_C) &
|
|
bind(c, name = 'rocsparse_dcsrgeam')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgeam
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
end function rocsparse_dcsrgeam
|
|
|
|
function rocsparse_ccsrgeam(handle, m, n, alpha, descr_A, nnz_A, csr_val_A, &
|
|
csr_row_ptr_A, csr_col_ind_A, beta, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, descr_C, csr_val_C, csr_row_ptr_C, &
|
|
csr_col_ind_C) &
|
|
bind(c, name = 'rocsparse_ccsrgeam')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgeam
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
end function rocsparse_ccsrgeam
|
|
|
|
function rocsparse_zcsrgeam(handle, m, n, alpha, descr_A, nnz_A, csr_val_A, &
|
|
csr_row_ptr_A, csr_col_ind_A, beta, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, descr_C, csr_val_C, csr_row_ptr_C, &
|
|
csr_col_ind_C) &
|
|
bind(c, name = 'rocsparse_zcsrgeam')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgeam
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
end function rocsparse_zcsrgeam
|
|
|
|
! rocsparse_csrgemm_buffer_size
|
|
function rocsparse_scsrgemm_buffer_size(handle, trans_A, trans_B, m, n, k, alpha, &
|
|
descr_A, nnz_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, &
|
|
csr_col_ind_B, beta, descr_D, nnz_D, csr_row_ptr_D, csr_col_ind_D, info_C, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_scsrgemm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), value :: info_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsrgemm_buffer_size
|
|
|
|
function rocsparse_dcsrgemm_buffer_size(handle, trans_A, trans_B, m, n, k, alpha, &
|
|
descr_A, nnz_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, &
|
|
csr_col_ind_B, beta, descr_D, nnz_D, csr_row_ptr_D, csr_col_ind_D, info_C, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsrgemm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), value :: info_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsrgemm_buffer_size
|
|
|
|
function rocsparse_ccsrgemm_buffer_size(handle, trans_A, trans_B, m, n, k, alpha, &
|
|
descr_A, nnz_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, &
|
|
csr_col_ind_B, beta, descr_D, nnz_D, csr_row_ptr_D, csr_col_ind_D, info_C, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsrgemm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), value :: info_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsrgemm_buffer_size
|
|
|
|
function rocsparse_zcsrgemm_buffer_size(handle, trans_A, trans_B, m, n, k, alpha, &
|
|
descr_A, nnz_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, &
|
|
csr_col_ind_B, beta, descr_D, nnz_D, csr_row_ptr_D, csr_col_ind_D, info_C, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsrgemm_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), value :: info_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsrgemm_buffer_size
|
|
|
|
! rocsparse_csrgemm_nnz
|
|
function rocsparse_csrgemm_nnz(handle, trans_A, trans_B, m, n, k, descr_A, &
|
|
nnz_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_row_ptr_B, &
|
|
csr_col_ind_B, descr_D, nnz_D, csr_row_ptr_D, csr_col_ind_D, descr_C, &
|
|
csr_row_ptr_C, nnz_C, info_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_csrgemm_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrgemm_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_C
|
|
type(c_ptr), intent(in), value :: info_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_csrgemm_nnz
|
|
|
|
! rocsparse_csrgemm
|
|
function rocsparse_scsrgemm(handle, trans_A, trans_B, m, n, k, alpha, descr_A, &
|
|
nnz_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, beta, descr_D, nnz_D, csr_val_D, csr_row_ptr_D, &
|
|
csr_col_ind_D, descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info_C, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrgemm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrgemm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_val_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), intent(in), value :: info_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrgemm
|
|
|
|
function rocsparse_dcsrgemm(handle, trans_A, trans_B, m, n, k, alpha, descr_A, &
|
|
nnz_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, beta, descr_D, nnz_D, csr_val_D, csr_row_ptr_D, &
|
|
csr_col_ind_D, descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info_C, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrgemm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrgemm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_val_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), intent(in), value :: info_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrgemm
|
|
|
|
function rocsparse_ccsrgemm(handle, trans_A, trans_B, m, n, k, alpha, descr_A, &
|
|
nnz_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, beta, descr_D, nnz_D, csr_val_D, csr_row_ptr_D, &
|
|
csr_col_ind_D, descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info_C, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrgemm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrgemm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_val_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), intent(in), value :: info_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrgemm
|
|
|
|
function rocsparse_zcsrgemm(handle, trans_A, trans_B, m, n, k, alpha, descr_A, &
|
|
nnz_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, descr_B, nnz_B, csr_val_B, &
|
|
csr_row_ptr_B, csr_col_ind_B, beta, descr_D, nnz_D, csr_val_D, csr_row_ptr_D, &
|
|
csr_col_ind_D, descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info_C, &
|
|
temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrgemm')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrgemm
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: trans_A
|
|
integer(c_int), value :: trans_B
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: k
|
|
type(c_ptr), intent(in), value :: alpha
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: descr_B
|
|
integer(c_int), value :: nnz_B
|
|
type(c_ptr), intent(in), value :: csr_val_B
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_B
|
|
type(c_ptr), intent(in), value :: csr_col_ind_B
|
|
type(c_ptr), intent(in), value :: beta
|
|
type(c_ptr), intent(in), value :: descr_D
|
|
integer(c_int), value :: nnz_D
|
|
type(c_ptr), intent(in), value :: csr_val_D
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_D
|
|
type(c_ptr), intent(in), value :: csr_col_ind_D
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), intent(in), value :: info_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrgemm
|
|
|
|
! ===========================================================================
|
|
! preconditioner SPARSE
|
|
! ===========================================================================
|
|
|
|
! rocsparse_bsric0_zero_pivot
|
|
function rocsparse_bsric0_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_bsric0_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsric0_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_bsric0_zero_pivot
|
|
|
|
! rocsparse_bsric0_buffer_size
|
|
function rocsparse_sbsric0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_sbsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sbsric0_buffer_size
|
|
|
|
function rocsparse_dbsric0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dbsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dbsric0_buffer_size
|
|
|
|
function rocsparse_cbsric0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_cbsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cbsric0_buffer_size
|
|
|
|
function rocsparse_zbsric0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zbsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zbsric0_buffer_size
|
|
|
|
! rocsparse_bsric0_analysis
|
|
function rocsparse_sbsric0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsric0_analysis
|
|
|
|
function rocsparse_dbsric0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsric0_analysis
|
|
|
|
function rocsparse_cbsric0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsric0_analysis
|
|
|
|
function rocsparse_zbsric0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsric0_analysis
|
|
|
|
! rocsparse_bsric0_clear
|
|
function rocsparse_bsric0_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_bsric0_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsric0_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_bsric0_clear
|
|
|
|
! rocsparse_bsric0
|
|
function rocsparse_sbsric0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsric0
|
|
|
|
function rocsparse_dbsric0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsric0
|
|
|
|
function rocsparse_cbsric0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsric0
|
|
|
|
function rocsparse_zbsric0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsric0
|
|
|
|
! rocsparse_bsrilu0_zero_pivot
|
|
function rocsparse_bsrilu0_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_bsrilu0_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsrilu0_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_bsrilu0_zero_pivot
|
|
|
|
! rocsparse_bsrilu0_buffer_size
|
|
function rocsparse_sbsrilu0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_sbsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sbsrilu0_buffer_size
|
|
|
|
function rocsparse_dbsrilu0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dbsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dbsrilu0_buffer_size
|
|
|
|
function rocsparse_cbsrilu0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_cbsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cbsrilu0_buffer_size
|
|
|
|
function rocsparse_zbsrilu0_buffer_size(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zbsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zbsrilu0_buffer_size
|
|
|
|
! rocsparse_bsrilu0_analysis
|
|
function rocsparse_sbsrilu0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsrilu0_analysis
|
|
|
|
function rocsparse_dbsrilu0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsrilu0_analysis
|
|
|
|
function rocsparse_cbsrilu0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsrilu0_analysis
|
|
|
|
function rocsparse_zbsrilu0_analysis(handle, dir, mb, nnzb, descr, bsr_val, &
|
|
bsr_row_ptr, bsr_col_ind, block_dim, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsrilu0_analysis
|
|
|
|
! rocsparse_bsrilu0_clear
|
|
function rocsparse_bsrilu0_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_bsrilu0_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_bsrilu0_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_bsrilu0_clear
|
|
|
|
! rocsparse_bsrilu0
|
|
function rocsparse_sbsrilu0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sbsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sbsrilu0
|
|
|
|
function rocsparse_dbsrilu0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dbsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dbsrilu0
|
|
|
|
function rocsparse_cbsrilu0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cbsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cbsrilu0
|
|
|
|
function rocsparse_zbsrilu0(handle, dir, mb, nnzb, descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zbsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zbsrilu0
|
|
|
|
! rocsparse_csric0_zero_pivot
|
|
function rocsparse_csric0_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_csric0_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csric0_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_csric0_zero_pivot
|
|
|
|
! rocsparse_csric0_buffer_size
|
|
function rocsparse_scsric0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_scsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsric0_buffer_size
|
|
|
|
function rocsparse_dcsric0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsric0_buffer_size
|
|
|
|
function rocsparse_ccsric0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsric0_buffer_size
|
|
|
|
function rocsparse_zcsric0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsric0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsric0_buffer_size
|
|
|
|
! rocsparse_csric0_analysis
|
|
function rocsparse_scsric0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsric0_analysis
|
|
|
|
function rocsparse_dcsric0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsric0_analysis
|
|
|
|
function rocsparse_ccsric0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsric0_analysis
|
|
|
|
function rocsparse_zcsric0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsric0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsric0_analysis
|
|
|
|
! rocsparse_csric0_clear
|
|
function rocsparse_csric0_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_csric0_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csric0_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_csric0_clear
|
|
|
|
! rocsparse_csric0
|
|
function rocsparse_scsric0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsric0
|
|
|
|
function rocsparse_dcsric0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsric0
|
|
|
|
function rocsparse_ccsric0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsric0
|
|
|
|
function rocsparse_zcsric0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsric0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsric0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsric0
|
|
|
|
! rocsparse_csrilu0_zero_pivot
|
|
function rocsparse_csrilu0_zero_pivot(handle, info, position) &
|
|
bind(c, name = 'rocsparse_csrilu0_zero_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrilu0_zero_pivot
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: position
|
|
end function rocsparse_csrilu0_zero_pivot
|
|
|
|
! rocsparse_csrilu0_buffer_size
|
|
function rocsparse_scsrilu0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_scsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsrilu0_buffer_size
|
|
|
|
function rocsparse_dcsrilu0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsrilu0_buffer_size
|
|
|
|
function rocsparse_ccsrilu0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsrilu0_buffer_size
|
|
|
|
function rocsparse_zcsrilu0_buffer_size(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsrilu0_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsrilu0_buffer_size
|
|
|
|
! rocsparse_csrilu0_analysis
|
|
function rocsparse_scsrilu0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrilu0_analysis
|
|
|
|
function rocsparse_dcsrilu0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrilu0_analysis
|
|
|
|
function rocsparse_ccsrilu0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrilu0_analysis
|
|
|
|
function rocsparse_zcsrilu0_analysis(handle, m, nnz, descr, csr_val, &
|
|
csr_row_ptr, csr_col_ind, info, analysis, solve, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrilu0_analysis')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0_analysis
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: analysis
|
|
integer(c_int), value :: solve
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrilu0_analysis
|
|
|
|
! rocsparse_csrilu0_clear
|
|
function rocsparse_csrilu0_clear(handle, info) &
|
|
bind(c, name = 'rocsparse_csrilu0_clear')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrilu0_clear
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), value :: info
|
|
end function rocsparse_csrilu0_clear
|
|
|
|
! rocsparse_csrilu0
|
|
function rocsparse_scsrilu0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsrilu0
|
|
|
|
function rocsparse_dcsrilu0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsrilu0
|
|
|
|
function rocsparse_ccsrilu0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsrilu0
|
|
|
|
function rocsparse_zcsrilu0(handle, m, nnz, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, policy, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsrilu0')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsrilu0
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
integer(c_int), value :: policy
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsrilu0
|
|
|
|
! rocsparse_gtsv_buffer_size
|
|
function rocsparse_sgtsv_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_sgtsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sgtsv_buffer_size
|
|
|
|
function rocsparse_dgtsv_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_dgtsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dgtsv_buffer_size
|
|
|
|
function rocsparse_cgtsv_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_cgtsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cgtsv_buffer_size
|
|
|
|
function rocsparse_zgtsv_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_zgtsv_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zgtsv_buffer_size
|
|
|
|
! rocsparse_gtsv
|
|
function rocsparse_sgtsv(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sgtsv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sgtsv
|
|
|
|
function rocsparse_dgtsv(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dgtsv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dgtsv
|
|
|
|
function rocsparse_cgtsv(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cgtsv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cgtsv
|
|
|
|
function rocsparse_zgtsv(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zgtsv')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zgtsv
|
|
|
|
! rocsparse_gtsv_no_pivot_buffer_size
|
|
function rocsparse_sgtsv_no_pivot_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_sgtsv_no_pivot_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sgtsv_no_pivot_buffer_size
|
|
|
|
function rocsparse_dgtsv_no_pivot_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_dgtsv_no_pivot_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dgtsv_no_pivot_buffer_size
|
|
|
|
function rocsparse_cgtsv_no_pivot_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_cgtsv_no_pivot_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cgtsv_no_pivot_buffer_size
|
|
|
|
function rocsparse_zgtsv_no_pivot_buffer_size(handle, m, n, dl, d, du, &
|
|
B, ldb, buffer_size) &
|
|
bind(c, name = 'rocsparse_zgtsv_no_pivot_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zgtsv_no_pivot_buffer_size
|
|
|
|
! rocsparse_gtsv_no_pivot
|
|
function rocsparse_sgtsv_no_pivot(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sgtsv_no_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sgtsv_no_pivot
|
|
|
|
function rocsparse_dgtsv_no_pivot(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dgtsv_no_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dgtsv_no_pivot
|
|
|
|
function rocsparse_cgtsv_no_pivot(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cgtsv_no_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cgtsv_no_pivot
|
|
|
|
function rocsparse_zgtsv_no_pivot(handle, m, n, dl, d, du, &
|
|
B, ldb, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zgtsv_no_pivot')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: B
|
|
integer(c_int), value :: ldb
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zgtsv_no_pivot
|
|
|
|
! rocsparse_gtsv_no_pivot_strided_batch_buffer_size
|
|
function rocsparse_sgtsv_no_pivot_strided_batch_buffer_size(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, buffer_size) &
|
|
bind(c, name = 'rocsparse_sgtsv_no_pivot_strided_batch_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sgtsv_no_pivot_strided_batch_buffer_size
|
|
|
|
function rocsparse_dgtsv_no_pivot_strided_batch_buffer_size(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, buffer_size) &
|
|
bind(c, name = 'rocsparse_dgtsv_no_pivot_strided_batch_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dgtsv_no_pivot_strided_batch_buffer_size
|
|
|
|
function rocsparse_cgtsv_no_pivot_strided_batch_buffer_size(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, buffer_size) &
|
|
bind(c, name = 'rocsparse_cgtsv_no_pivot_strided_batch_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cgtsv_no_pivot_strided_batch_buffer_size
|
|
|
|
function rocsparse_zgtsv_no_pivot_strided_batch_buffer_size(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, buffer_size) &
|
|
bind(c, name = 'rocsparse_zgtsv_no_pivot_strided_batch_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), intent(in), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zgtsv_no_pivot_strided_batch_buffer_size
|
|
|
|
! rocsparse_gtsv_no_pivot_strided_batch
|
|
function rocsparse_sgtsv_no_pivot_strided_batch(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sgtsv_no_pivot_strided_batch')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgtsv_no_pivot_strided_batch
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sgtsv_no_pivot_strided_batch
|
|
|
|
function rocsparse_dgtsv_no_pivot_strided_batch(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dgtsv_no_pivot_strided_batch')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgtsv_no_pivot_strided_batch
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dgtsv_no_pivot_strided_batch
|
|
|
|
function rocsparse_cgtsv_no_pivot_strided_batch(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cgtsv_no_pivot_strided_batch')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgtsv_no_pivot_strided_batch
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cgtsv_no_pivot_strided_batch
|
|
|
|
function rocsparse_zgtsv_no_pivot_strided_batch(handle, m, dl, d, du, &
|
|
x, batch_count, batch_stride, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zgtsv_no_pivot_strided_batch')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgtsv_no_pivot_strided_batch
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: dl
|
|
type(c_ptr), intent(in), value :: d
|
|
type(c_ptr), intent(in), value :: du
|
|
type(c_ptr), value :: x
|
|
integer(c_int), value :: batch_count
|
|
integer(c_int), value :: batch_stride
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zgtsv_no_pivot_strided_batch
|
|
|
|
! ===========================================================================
|
|
! conversion SPARSE
|
|
! ===========================================================================
|
|
|
|
! rocsparse_nnz
|
|
function rocsparse_snnz(handle, dir, m, n, descr, A, ld, nnz_per_row_columns, &
|
|
nnz_total_dev_host_ptr) &
|
|
bind(c, name = 'rocsparse_snnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_snnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), value :: nnz_per_row_columns
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
end function rocsparse_snnz
|
|
|
|
function rocsparse_dnnz(handle, dir, m, n, descr, A, ld, nnz_per_row_columns, &
|
|
nnz_total_dev_host_ptr) &
|
|
bind(c, name = 'rocsparse_dnnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dnnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), value :: nnz_per_row_columns
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
end function rocsparse_dnnz
|
|
|
|
function rocsparse_cnnz(handle, dir, m, n, descr, A, ld, nnz_per_row_columns, &
|
|
nnz_total_dev_host_ptr) &
|
|
bind(c, name = 'rocsparse_cnnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cnnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), value :: nnz_per_row_columns
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
end function rocsparse_cnnz
|
|
|
|
function rocsparse_znnz(handle, dir, m, n, descr, A, ld, nnz_per_row_columns, &
|
|
nnz_total_dev_host_ptr) &
|
|
bind(c, name = 'rocsparse_znnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_znnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), value :: nnz_per_row_columns
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
end function rocsparse_znnz
|
|
|
|
! rocsparse_dense2csr
|
|
function rocsparse_sdense2csr(handle, m, n, descr, A, ld, nnz_per_rows, csr_val, &
|
|
csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_sdense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_sdense2csr
|
|
|
|
function rocsparse_ddense2csr(handle, m, n, descr, A, ld, nnz_per_rows, csr_val, &
|
|
csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_ddense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_ddense2csr
|
|
|
|
function rocsparse_cdense2csr(handle, m, n, descr, A, ld, nnz_per_rows, csr_val, &
|
|
csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_cdense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_cdense2csr
|
|
|
|
function rocsparse_zdense2csr(handle, m, n, descr, A, ld, nnz_per_rows, csr_val, &
|
|
csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_zdense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_zdense2csr
|
|
|
|
! rocsparse_dense2csc
|
|
function rocsparse_sdense2csc(handle, m, n, descr, A, ld, nnz_per_columns, &
|
|
csc_val, csc_col_ptr, csc_row_ind) &
|
|
bind(c, name = 'rocsparse_sdense2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sdense2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_columns
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_col_ptr
|
|
type(c_ptr), value :: csc_row_ind
|
|
end function rocsparse_sdense2csc
|
|
|
|
function rocsparse_ddense2csc(handle, m, n, descr, A, ld, nnz_per_columns, &
|
|
csc_val, csc_col_ptr, csc_row_ind) &
|
|
bind(c, name = 'rocsparse_ddense2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ddense2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_columns
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_col_ptr
|
|
type(c_ptr), value :: csc_row_ind
|
|
end function rocsparse_ddense2csc
|
|
|
|
function rocsparse_cdense2csc(handle, m, n, descr, A, ld, nnz_per_columns, &
|
|
csc_val, csc_col_ptr, csc_row_ind) &
|
|
bind(c, name = 'rocsparse_cdense2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cdense2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_columns
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_col_ptr
|
|
type(c_ptr), value :: csc_row_ind
|
|
end function rocsparse_cdense2csc
|
|
|
|
function rocsparse_zdense2csc(handle, m, n, descr, A, ld, nnz_per_columns, &
|
|
csc_val, csc_col_ptr, csc_row_ind) &
|
|
bind(c, name = 'rocsparse_zdense2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zdense2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_columns
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_col_ptr
|
|
type(c_ptr), value :: csc_row_ind
|
|
end function rocsparse_zdense2csc
|
|
|
|
! rocsparse_dense2coo
|
|
function rocsparse_sdense2coo(handle, m, n, descr, A, ld, nnz_per_rows, coo_val, &
|
|
coo_row_ind, coo_col_ind) &
|
|
bind(c, name = 'rocsparse_sdense2coo')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sdense2coo
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: coo_val
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
end function rocsparse_sdense2coo
|
|
|
|
function rocsparse_ddense2coo(handle, m, n, descr, A, ld, nnz_per_rows, coo_val, &
|
|
coo_row_ind, coo_col_ind) &
|
|
bind(c, name = 'rocsparse_ddense2coo')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ddense2coo
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: coo_val
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
end function rocsparse_ddense2coo
|
|
|
|
function rocsparse_cdense2coo(handle, m, n, descr, A, ld, nnz_per_rows, coo_val, &
|
|
coo_row_ind, coo_col_ind) &
|
|
bind(c, name = 'rocsparse_cdense2coo')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cdense2coo
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: coo_val
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
end function rocsparse_cdense2coo
|
|
|
|
function rocsparse_zdense2coo(handle, m, n, descr, A, ld, nnz_per_rows, coo_val, &
|
|
coo_row_ind, coo_col_ind) &
|
|
bind(c, name = 'rocsparse_zdense2coo')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zdense2coo
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: ld
|
|
type(c_ptr), intent(in), value :: nnz_per_rows
|
|
type(c_ptr), value :: coo_val
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
end function rocsparse_zdense2coo
|
|
|
|
! rocsparse_csr2dense
|
|
function rocsparse_scsr2dense(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_scsr2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_scsr2dense
|
|
|
|
function rocsparse_dcsr2dense(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_dcsr2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_dcsr2dense
|
|
|
|
function rocsparse_ccsr2dense(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_ccsr2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_ccsr2dense
|
|
|
|
function rocsparse_zcsr2dense(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_zcsr2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_zcsr2dense
|
|
|
|
! rocsparse_csc2dense
|
|
function rocsparse_scsc2dense(handle, m, n, descr, csc_val, csc_col_ptr, &
|
|
csc_row_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_scsc2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsc2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csc_val
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), intent(in), value :: csc_row_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_scsc2dense
|
|
|
|
function rocsparse_dcsc2dense(handle, m, n, descr, csc_val, csc_col_ptr, &
|
|
csc_row_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_dcsc2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsc2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csc_val
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), intent(in), value :: csc_row_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_dcsc2dense
|
|
|
|
function rocsparse_ccsc2dense(handle, m, n, descr, csc_val, csc_col_ptr, &
|
|
csc_row_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_ccsc2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsc2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csc_val
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), intent(in), value :: csc_row_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_ccsc2dense
|
|
|
|
function rocsparse_zcsc2dense(handle, m, n, descr, csc_val, csc_col_ptr, &
|
|
csc_row_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_zcsc2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsc2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csc_val
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), intent(in), value :: csc_row_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_zcsc2dense
|
|
|
|
! rocsparse_coo2dense
|
|
function rocsparse_scoo2dense(handle, m, n, nnz, descr, coo_val, coo_row_ind, &
|
|
coo_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_scoo2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scoo2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_scoo2dense
|
|
|
|
function rocsparse_dcoo2dense(handle, m, n, nnz, descr, coo_val, coo_row_ind, &
|
|
coo_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_dcoo2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcoo2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_dcoo2dense
|
|
|
|
function rocsparse_ccoo2dense(handle, m, n, nnz, descr, coo_val, coo_row_ind, &
|
|
coo_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_ccoo2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccoo2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_ccoo2dense
|
|
|
|
function rocsparse_zcoo2dense(handle, m, n, nnz, descr, coo_val, coo_row_ind, &
|
|
coo_col_ind, A, ld) &
|
|
bind(c, name = 'rocsparse_zcoo2dense')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcoo2dense
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: coo_val
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), value :: A
|
|
integer(c_int), value :: ld
|
|
end function rocsparse_zcoo2dense
|
|
|
|
! rocsparse_nnz_compress
|
|
function rocsparse_snnz_compress(handle, m, descr_A, csr_val_A, csr_row_ptr_A, &
|
|
nnz_per_row, nnz_C, tol) &
|
|
bind(c, name = 'rocsparse_snnz_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_snnz_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), value :: nnz_per_row
|
|
type(c_ptr), value :: nnz_C
|
|
real(c_float), value :: tol
|
|
end function rocsparse_snnz_compress
|
|
|
|
function rocsparse_dnnz_compress(handle, m, descr_A, csr_val_A, csr_row_ptr_A, &
|
|
nnz_per_row, nnz_C, tol) &
|
|
bind(c, name = 'rocsparse_dnnz_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dnnz_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), value :: nnz_per_row
|
|
type(c_ptr), value :: nnz_C
|
|
real(c_double), value :: tol
|
|
end function rocsparse_dnnz_compress
|
|
|
|
function rocsparse_cnnz_compress(handle, m, descr_A, csr_val_A, csr_row_ptr_A, &
|
|
nnz_per_row, nnz_C, tol) &
|
|
bind(c, name = 'rocsparse_cnnz_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cnnz_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), value :: nnz_per_row
|
|
type(c_ptr), value :: nnz_C
|
|
complex(c_float_complex), value :: tol
|
|
end function rocsparse_cnnz_compress
|
|
|
|
function rocsparse_znnz_compress(handle, m, descr_A, csr_val_A, csr_row_ptr_A, &
|
|
nnz_per_row, nnz_C, tol) &
|
|
bind(c, name = 'rocsparse_znnz_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_znnz_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), value :: nnz_per_row
|
|
type(c_ptr), value :: nnz_C
|
|
complex(c_double_complex), value :: tol
|
|
end function rocsparse_znnz_compress
|
|
|
|
! rocsparse_csr2coo
|
|
function rocsparse_csr2coo(handle, csr_row_ptr, nnz, m, coo_row_ind, idx_base) &
|
|
bind(c, name = 'rocsparse_csr2coo')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csr2coo
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
integer(c_int), value :: nnz
|
|
integer(c_int), value :: m
|
|
type(c_ptr), value :: coo_row_ind
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_csr2coo
|
|
|
|
! rocsparse_gebsr2csr
|
|
function rocsparse_sgebsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind) &
|
|
bind(c, name = 'rocsparse_sgebsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_sgebsr2csr
|
|
|
|
function rocsparse_dgebsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind) &
|
|
bind(c, name = 'rocsparse_dgebsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_dgebsr2csr
|
|
|
|
function rocsparse_cgebsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind) &
|
|
bind(c, name = 'rocsparse_cgebsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_cgebsr2csr
|
|
|
|
function rocsparse_zgebsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind) &
|
|
bind(c, name = 'rocsparse_zgebsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_zgebsr2csr
|
|
|
|
! rocsparse_gebsr2gebsc_buffer_size
|
|
function rocsparse_sgebsr2gebsc_buffer_size(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, buffer_size) &
|
|
bind(c, name = 'rocsparse_sgebsr2gebsc_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sgebsr2gebsc_buffer_size
|
|
|
|
function rocsparse_dgebsr2gebsc_buffer_size(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, buffer_size) &
|
|
bind(c, name = 'rocsparse_dgebsr2gebsc_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dgebsr2gebsc_buffer_size
|
|
|
|
function rocsparse_cgebsr2gebsc_buffer_size(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, buffer_size) &
|
|
bind(c, name = 'rocsparse_cgebsr2gebsc_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cgebsr2gebsc_buffer_size
|
|
|
|
function rocsparse_zgebsr2gebsc_buffer_size(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, buffer_size) &
|
|
bind(c, name = 'rocsparse_zgebsr2gebsc_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zgebsr2gebsc_buffer_size
|
|
|
|
|
|
! rocsparse_gebsr2gebsc
|
|
function rocsparse_sgebsr2gebsc(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, bsc_val, bsc_row_ind, bsc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sgebsr2gebsc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: bsc_val
|
|
type(c_ptr), value :: bsc_row_ind
|
|
type(c_ptr), value :: bsc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sgebsr2gebsc
|
|
|
|
|
|
function rocsparse_dgebsr2gebsc(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, bsc_val, bsc_row_ind, bsc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dgebsr2gebsc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: bsc_val
|
|
type(c_ptr), value :: bsc_row_ind
|
|
type(c_ptr), value :: bsc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dgebsr2gebsc
|
|
|
|
function rocsparse_cgebsr2gebsc(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, bsc_val, bsc_row_ind, bsc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cgebsr2gebsc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: bsc_val
|
|
type(c_ptr), value :: bsc_row_ind
|
|
type(c_ptr), value :: bsc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cgebsr2gebsc
|
|
|
|
function rocsparse_zgebsr2gebsc(handle, mb, nb, nnzb, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, row_block_dim, col_block_dim, bsc_val, bsc_row_ind, bsc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zgebsr2gebsc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: bsc_val
|
|
type(c_ptr), value :: bsc_row_ind
|
|
type(c_ptr), value :: bsc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zgebsr2gebsc
|
|
|
|
|
|
! rocsparse_gebsr2gebsr_buffer_size
|
|
function rocsparse_sgebsr2gebsr_buffer_size(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, row_block_dim_C, col_block_dim_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_sgebsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sgebsr2gebsr_buffer_size
|
|
|
|
function rocsparse_dgebsr2gebsr_buffer_size(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, row_block_dim_C, col_block_dim_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_dgebsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dgebsr2gebsr_buffer_size
|
|
|
|
function rocsparse_cgebsr2gebsr_buffer_size(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, row_block_dim_C, col_block_dim_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_cgebsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cgebsr2gebsr_buffer_size
|
|
|
|
function rocsparse_zgebsr2gebsr_buffer_size(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, row_block_dim_C, col_block_dim_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_zgebsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zgebsr2gebsr_buffer_size
|
|
|
|
! rocsparse_gebsr2gebsr_nnz
|
|
function rocsparse_gebsr2gebsr_nnz(handle, dir, mb, nb, nnzb, descr_A, bsr_row_ptr_A, bsr_col_ind_A, &
|
|
row_block_dim_A, col_block_dim_A, descr_C, bsr_row_ptr_C, row_block_dim_C, col_block_dim_C, &
|
|
nnz_total_dev_host_ptr, temp_buffer) &
|
|
bind(c, name = 'rocsparse_gebsr2gebsr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_gebsr2gebsr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: bsr_row_ptr_C
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_gebsr2gebsr_nnz
|
|
|
|
! rocsparse_gebsr2gebsr
|
|
function rocsparse_sgebsr2gebsr(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, descr_C, bsr_val_C, bsr_row_ptr_C, &
|
|
bsr_col_ind_C, row_block_dim_C, col_block_dim_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sgebsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sgebsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: bsr_val_C
|
|
type(c_ptr), value :: bsr_row_ptr_C
|
|
type(c_ptr), value :: bsr_col_ind_C
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sgebsr2gebsr
|
|
|
|
|
|
function rocsparse_dgebsr2gebsr(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, descr_C, bsr_val_C, bsr_row_ptr_C, &
|
|
bsr_col_ind_C, row_block_dim_C, col_block_dim_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dgebsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dgebsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: bsr_val_C
|
|
type(c_ptr), value :: bsr_row_ptr_C
|
|
type(c_ptr), value :: bsr_col_ind_C
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dgebsr2gebsr
|
|
|
|
function rocsparse_cgebsr2gebsr(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, descr_C, bsr_val_C, bsr_row_ptr_C, &
|
|
bsr_col_ind_C, row_block_dim_C, col_block_dim_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cgebsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cgebsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: bsr_val_C
|
|
type(c_ptr), value :: bsr_row_ptr_C
|
|
type(c_ptr), value :: bsr_col_ind_C
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cgebsr2gebsr
|
|
|
|
function rocsparse_zgebsr2gebsr(handle, dir, mb, nb, nnzb, descr_A, bsr_val_A, bsr_row_ptr_A, &
|
|
bsr_col_ind_A, row_block_dim_A, col_block_dim_A, descr_C, bsr_val_C, bsr_row_ptr_C, &
|
|
bsr_col_ind_C, row_block_dim_C, col_block_dim_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zgebsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zgebsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
integer(c_int), value :: nnzb
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: bsr_val_A
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: bsr_col_ind_A
|
|
integer(c_int), value :: row_block_dim_A
|
|
integer(c_int), value :: col_block_dim_A
|
|
type(c_ptr), intent(in), value :: descr_C
|
|
type(c_ptr), value :: bsr_val_C
|
|
type(c_ptr), value :: bsr_row_ptr_C
|
|
type(c_ptr), value :: bsr_col_ind_C
|
|
integer(c_int), value :: row_block_dim_C
|
|
integer(c_int), value :: col_block_dim_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zgebsr2gebsr
|
|
|
|
|
|
! rocsparse_csr2csc_buffer_size
|
|
function rocsparse_csr2csc_buffer_size(handle, m, n, nnz, csr_row_ptr, &
|
|
csr_col_ind, copy_values, buffer_size) &
|
|
bind(c, name = 'rocsparse_csr2csc_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csr2csc_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: copy_values
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_csr2csc_buffer_size
|
|
|
|
! rocsparse_csr2csc
|
|
function rocsparse_scsr2csc(handle, m, n, nnz, csr_val, csr_row_ptr, &
|
|
csr_col_ind, csc_val, csc_row_ind, csc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsr2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_row_ind
|
|
type(c_ptr), value :: csc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsr2csc
|
|
|
|
function rocsparse_dcsr2csc(handle, m, n, nnz, csr_val, csr_row_ptr, &
|
|
csr_col_ind, csc_val, csc_row_ind, csc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsr2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_row_ind
|
|
type(c_ptr), value :: csc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsr2csc
|
|
|
|
function rocsparse_ccsr2csc(handle, m, n, nnz, csr_val, csr_row_ptr, &
|
|
csr_col_ind, csc_val, csc_row_ind, csc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsr2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_row_ind
|
|
type(c_ptr), value :: csc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsr2csc
|
|
|
|
function rocsparse_zcsr2csc(handle, m, n, nnz, csr_val, csr_row_ptr, &
|
|
csr_col_ind, csc_val, csc_row_ind, csc_col_ptr, copy_values, &
|
|
idx_base, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsr2csc')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csc
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: csc_val
|
|
type(c_ptr), value :: csc_row_ind
|
|
type(c_ptr), value :: csc_col_ptr
|
|
integer(c_int), value :: copy_values
|
|
integer(c_int), value :: idx_base
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsr2csc
|
|
|
|
! rocsparse_csr2ell_width
|
|
function rocsparse_csr2ell_width(handle, m, csr_descr, csr_row_ptr, &
|
|
ell_descr, ell_width) &
|
|
bind(c, name = 'rocsparse_csr2ell_width')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csr2ell_width
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
type(c_ptr), value :: ell_width
|
|
end function rocsparse_csr2ell_width
|
|
|
|
! rocsparse_csr2ell
|
|
function rocsparse_scsr2ell(handle, m, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, ell_descr, ell_width, ell_val, ell_col_ind) &
|
|
bind(c, name = 'rocsparse_scsr2ell')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2ell
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), value :: ell_val
|
|
type(c_ptr), value :: ell_col_ind
|
|
end function rocsparse_scsr2ell
|
|
|
|
function rocsparse_dcsr2ell(handle, m, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, ell_descr, ell_width, ell_val, ell_col_ind) &
|
|
bind(c, name = 'rocsparse_dcsr2ell')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2ell
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), value :: ell_val
|
|
type(c_ptr), value :: ell_col_ind
|
|
end function rocsparse_dcsr2ell
|
|
|
|
function rocsparse_ccsr2ell(handle, m, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, ell_descr, ell_width, ell_val, ell_col_ind) &
|
|
bind(c, name = 'rocsparse_ccsr2ell')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2ell
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), value :: ell_val
|
|
type(c_ptr), value :: ell_col_ind
|
|
end function rocsparse_ccsr2ell
|
|
|
|
function rocsparse_zcsr2ell(handle, m, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, ell_descr, ell_width, ell_val, ell_col_ind) &
|
|
bind(c, name = 'rocsparse_zcsr2ell')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2ell
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), value :: ell_val
|
|
type(c_ptr), value :: ell_col_ind
|
|
end function rocsparse_zcsr2ell
|
|
|
|
! rocsparse_csr2hyb
|
|
function rocsparse_scsr2hyb(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, hyb, user_ell_width, partition_type) &
|
|
bind(c, name = 'rocsparse_scsr2hyb')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2hyb
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: hyb
|
|
integer(c_int), value :: user_ell_width
|
|
integer(c_int), value :: partition_type
|
|
end function rocsparse_scsr2hyb
|
|
|
|
function rocsparse_dcsr2hyb(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, hyb, user_ell_width, partition_type) &
|
|
bind(c, name = 'rocsparse_dcsr2hyb')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2hyb
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: hyb
|
|
integer(c_int), value :: user_ell_width
|
|
integer(c_int), value :: partition_type
|
|
end function rocsparse_dcsr2hyb
|
|
|
|
function rocsparse_ccsr2hyb(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, hyb, user_ell_width, partition_type) &
|
|
bind(c, name = 'rocsparse_ccsr2hyb')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2hyb
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: hyb
|
|
integer(c_int), value :: user_ell_width
|
|
integer(c_int), value :: partition_type
|
|
end function rocsparse_ccsr2hyb
|
|
|
|
function rocsparse_zcsr2hyb(handle, m, n, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, hyb, user_ell_width, partition_type) &
|
|
bind(c, name = 'rocsparse_zcsr2hyb')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2hyb
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: hyb
|
|
integer(c_int), value :: user_ell_width
|
|
integer(c_int), value :: partition_type
|
|
end function rocsparse_zcsr2hyb
|
|
|
|
! rocsparse_csr2bsr_nnz
|
|
function rocsparse_csr2bsr_nnz(handle, dir, m, n, csr_descr, csr_row_ptr, &
|
|
csr_col_ind, block_dim, bsr_descr, bsr_row_ptr, bsr_nnz) &
|
|
bind(c, name = 'rocsparse_csr2bsr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csr2bsr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_nnz
|
|
end function rocsparse_csr2bsr_nnz
|
|
|
|
! rocsparse_csr2bsr
|
|
function rocsparse_scsr2bsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, block_dim, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind) &
|
|
bind(c, name = 'rocsparse_scsr2bsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2bsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
end function rocsparse_scsr2bsr
|
|
|
|
function rocsparse_dcsr2bsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, block_dim, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind) &
|
|
bind(c, name = 'rocsparse_dcsr2bsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2bsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
end function rocsparse_dcsr2bsr
|
|
|
|
function rocsparse_ccsr2bsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, block_dim, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind) &
|
|
bind(c, name = 'rocsparse_ccsr2bsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2bsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
end function rocsparse_ccsr2bsr
|
|
|
|
function rocsparse_zcsr2bsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, block_dim, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind) &
|
|
bind(c, name = 'rocsparse_zcsr2bsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2bsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
end function rocsparse_zcsr2bsr
|
|
|
|
! rocsparse_csr2gebsr_nnz
|
|
function rocsparse_csr2gebsr_nnz(handle, dir, m, n, csr_descr, csr_row_ptr, &
|
|
csr_col_ind, bsr_descr, bsr_row_ptr, row_block_dim, &
|
|
col_block_dim, bsr_nnz, temp_buffer) &
|
|
bind(c, name = 'rocsparse_csr2gebsr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csr2gebsr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: bsr_nnz
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_csr2gebsr_nnz
|
|
|
|
! rocsparse_csr2gebsr_buffer_size
|
|
function rocsparse_scsr2gebsr_buffer_size(handle, &
|
|
dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, row_block_dim, col_block_dim, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_scsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_scsr2gebsr_buffer_size
|
|
|
|
function rocsparse_dcsr2gebsr_buffer_size(handle, &
|
|
dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, row_block_dim, col_block_dim, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_dcsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dcsr2gebsr_buffer_size
|
|
|
|
|
|
function rocsparse_ccsr2gebsr_buffer_size(handle, &
|
|
dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, row_block_dim, col_block_dim, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_ccsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_ccsr2gebsr_buffer_size
|
|
|
|
|
|
function rocsparse_zcsr2gebsr_buffer_size(handle, &
|
|
dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, row_block_dim, col_block_dim, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_zcsr2gebsr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_zcsr2gebsr_buffer_size
|
|
|
|
|
|
! rocsparse_csr2gebsr
|
|
function rocsparse_scsr2gebsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind, &
|
|
row_block_dim, col_block_dim, temp_buffer) &
|
|
bind(c, name = 'rocsparse_scsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_scsr2gebsr
|
|
|
|
|
|
function rocsparse_dcsr2gebsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind, &
|
|
row_block_dim, col_block_dim, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dcsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dcsr2gebsr
|
|
|
|
|
|
function rocsparse_ccsr2gebsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind, &
|
|
row_block_dim, col_block_dim, temp_buffer) &
|
|
bind(c, name = 'rocsparse_ccsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_ccsr2gebsr
|
|
|
|
|
|
function rocsparse_zcsr2gebsr(handle, dir, m, n, csr_descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, bsr_descr, bsr_val, bsr_row_ptr, bsr_col_ind, &
|
|
row_block_dim, col_block_dim, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zcsr2gebsr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2gebsr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), value :: bsr_val
|
|
type(c_ptr), value :: bsr_row_ptr
|
|
type(c_ptr), value :: bsr_col_ind
|
|
integer(c_int), value :: row_block_dim
|
|
integer(c_int), value :: col_block_dim
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zcsr2gebsr
|
|
|
|
|
|
! rocsparse_csr2csr_compress
|
|
function rocsparse_scsr2csr_compress(handle, m, n, descr_A, csr_val_A, &
|
|
csr_col_ind_A, csr_row_ptr_A, nnz_A, nnz_per_row, csr_val_C, &
|
|
csr_col_ind_C, csr_row_ptr_C, tol) &
|
|
bind(c, name = 'rocsparse_scsr2csr_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_scsr2csr_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: nnz_per_row
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
real(c_float), value :: tol
|
|
end function rocsparse_scsr2csr_compress
|
|
|
|
function rocsparse_dcsr2csr_compress(handle, m, n, descr_A, csr_val_A, &
|
|
csr_col_ind_A, csr_row_ptr_A, nnz_A, nnz_per_row, csr_val_C, &
|
|
csr_col_ind_C, csr_row_ptr_C, tol) &
|
|
bind(c, name = 'rocsparse_dcsr2csr_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dcsr2csr_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: nnz_per_row
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
real(c_double), value :: tol
|
|
end function rocsparse_dcsr2csr_compress
|
|
|
|
function rocsparse_ccsr2csr_compress(handle, m, n, descr_A, csr_val_A, &
|
|
csr_col_ind_A, csr_row_ptr_A, nnz_A, nnz_per_row, csr_val_C, &
|
|
csr_col_ind_C, csr_row_ptr_C, tol) &
|
|
bind(c, name = 'rocsparse_ccsr2csr_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ccsr2csr_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: nnz_per_row
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
complex(c_float_complex), value :: tol
|
|
end function rocsparse_ccsr2csr_compress
|
|
|
|
function rocsparse_zcsr2csr_compress(handle, m, n, descr_A, csr_val_A, &
|
|
csr_col_ind_A, csr_row_ptr_A, nnz_A, nnz_per_row, csr_val_C, &
|
|
csr_col_ind_C, csr_row_ptr_C, tol) &
|
|
bind(c, name = 'rocsparse_zcsr2csr_compress')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zcsr2csr_compress
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: nnz_per_row
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
complex(c_double_complex), value :: tol
|
|
end function rocsparse_zcsr2csr_compress
|
|
|
|
! rocsparse_coo2csr
|
|
function rocsparse_coo2csr(handle, coo_row_ind, nnz, m, csr_row_ptr, idx_base) &
|
|
bind(c, name = 'rocsparse_coo2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_coo2csr
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
integer(c_int), value :: nnz
|
|
integer(c_int), value :: m
|
|
type(c_ptr), value :: csr_row_ptr
|
|
integer(c_int), value :: idx_base
|
|
end function rocsparse_coo2csr
|
|
|
|
! rocsparse_ell2csr_nnz
|
|
function rocsparse_ell2csr_nnz(handle, m, n, ell_descr, ell_width, ell_col_ind, &
|
|
csr_descr, csr_row_ptr, csr_nnz) &
|
|
bind(c, name = 'rocsparse_ell2csr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_ell2csr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_nnz
|
|
end function rocsparse_ell2csr_nnz
|
|
|
|
! rocsparse_ell2csr
|
|
function rocsparse_sell2csr(handle, m, n, ell_descr, ell_width, ell_val, &
|
|
ell_col_ind, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_sell2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sell2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_sell2csr
|
|
|
|
function rocsparse_dell2csr(handle, m, n, ell_descr, ell_width, ell_val, &
|
|
ell_col_ind, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_dell2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dell2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_dell2csr
|
|
|
|
function rocsparse_cell2csr(handle, m, n, ell_descr, ell_width, ell_val, &
|
|
ell_col_ind, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_cell2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cell2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_cell2csr
|
|
|
|
function rocsparse_zell2csr(handle, m, n, ell_descr, ell_width, ell_val, &
|
|
ell_col_ind, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_zell2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zell2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: ell_descr
|
|
integer(c_int), value :: ell_width
|
|
type(c_ptr), intent(in), value :: ell_val
|
|
type(c_ptr), intent(in), value :: ell_col_ind
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_zell2csr
|
|
|
|
! rocsparse_hyb2csr_buffer_size
|
|
function rocsparse_hyb2csr_buffer_size(handle, descr, hyb, csr_row_ptr, &
|
|
buffer_size) &
|
|
bind(c, name = 'rocsparse_hyb2csr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_hyb2csr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_hyb2csr_buffer_size
|
|
|
|
! rocsparse_hyb2csr
|
|
function rocsparse_shyb2csr(handle, descr, hyb, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_shyb2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_shyb2csr
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_shyb2csr
|
|
|
|
function rocsparse_dhyb2csr(handle, descr, hyb, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dhyb2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dhyb2csr
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dhyb2csr
|
|
|
|
function rocsparse_chyb2csr(handle, descr, hyb, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_chyb2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_chyb2csr
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_chyb2csr
|
|
|
|
function rocsparse_zhyb2csr(handle, descr, hyb, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_zhyb2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zhyb2csr
|
|
type(c_ptr), value :: handle
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: hyb
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_zhyb2csr
|
|
|
|
! rocsparse_create_identity_permutation
|
|
function rocsparse_create_identity_permutation(handle, n, p) &
|
|
bind(c, name = 'rocsparse_create_identity_permutation')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_create_identity_permutation
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: n
|
|
type(c_ptr), value :: p
|
|
end function rocsparse_create_identity_permutation
|
|
|
|
! rocsparse_csrsort_buffer_size
|
|
function rocsparse_csrsort_buffer_size(handle, m, n, nnz, csr_row_ptr, &
|
|
csr_col_ind, buffer_size) &
|
|
bind(c, name = 'rocsparse_csrsort_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsort_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_csrsort_buffer_size
|
|
|
|
! rocsparse_csrsort
|
|
function rocsparse_csrsort(handle, m, n, nnz, csr_row_ptr, &
|
|
csr_col_ind, perm, temp_buffer) &
|
|
bind(c, name = 'rocsparse_csrsort')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_csrsort
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: perm
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_csrsort
|
|
|
|
! rocsparse_cscsort_buffer_size
|
|
function rocsparse_cscsort_buffer_size(handle, m, n, nnz, csc_col_ptr, &
|
|
csc_row_ind, buffer_size) &
|
|
bind(c, name = 'rocsparse_cscsort_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cscsort_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), intent(in), value :: csc_row_ind
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_cscsort_buffer_size
|
|
|
|
! rocsparse_cscsort
|
|
function rocsparse_cscsort(handle, m, n, nnz, csc_col_ptr, &
|
|
csc_row_ind, perm, temp_buffer) &
|
|
bind(c, name = 'rocsparse_cscsort')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cscsort
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: csc_col_ptr
|
|
type(c_ptr), value :: csc_row_ind
|
|
type(c_ptr), value :: perm
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_cscsort
|
|
|
|
! rocsparse_coosort_buffer_size
|
|
function rocsparse_coosort_buffer_size(handle, m, n, nnz, coo_row_ind, &
|
|
coo_col_ind, buffer_size) &
|
|
bind(c, name = 'rocsparse_coosort_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_coosort_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), intent(in), value :: coo_row_ind
|
|
type(c_ptr), intent(in), value :: coo_col_ind
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_coosort_buffer_size
|
|
|
|
! rocsparse_coosort_by_row
|
|
function rocsparse_coosort_by_row(handle, m, n, nnz, coo_row_ind, &
|
|
coo_col_ind, perm, temp_buffer) &
|
|
bind(c, name = 'rocsparse_coosort_by_row')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_row
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
type(c_ptr), value :: perm
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_coosort_by_row
|
|
|
|
! rocsparse_coosort_by_column
|
|
function rocsparse_coosort_by_column(handle, m, n, nnz, coo_row_ind, &
|
|
coo_col_ind, perm, temp_buffer) &
|
|
bind(c, name = 'rocsparse_coosort_by_column')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_coosort_by_column
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz
|
|
type(c_ptr), value :: coo_row_ind
|
|
type(c_ptr), value :: coo_col_ind
|
|
type(c_ptr), value :: perm
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_coosort_by_column
|
|
|
|
! rocsparse_bsr2csr
|
|
function rocsparse_sbsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_sbsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sbsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_sbsr2csr
|
|
|
|
function rocsparse_dbsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_dbsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dbsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_dbsr2csr
|
|
|
|
function rocsparse_cbsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_cbsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_cbsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_cbsr2csr
|
|
|
|
function rocsparse_zbsr2csr(handle, dir, mb, nb, bsr_descr, bsr_val, bsr_row_ptr, &
|
|
bsr_col_ind, block_dim, csr_descr, csr_val, csr_row_ptr, csr_col_ind) &
|
|
bind(c, name = 'rocsparse_zbsr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_zbsr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: dir
|
|
integer(c_int), value :: mb
|
|
integer(c_int), value :: nb
|
|
type(c_ptr), intent(in), value :: bsr_descr
|
|
type(c_ptr), intent(in), value :: bsr_val
|
|
type(c_ptr), intent(in), value :: bsr_row_ptr
|
|
type(c_ptr), intent(in), value :: bsr_col_ind
|
|
integer(c_int), value :: block_dim
|
|
type(c_ptr), intent(in), value :: csr_descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
end function rocsparse_zbsr2csr
|
|
|
|
! rocsparse_prune_dense2csr_buffer_size
|
|
function rocsparse_sprune_dense2csr_buffer_size(handle, m, n, A, lda, threshold, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, buffer_size) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sprune_dense2csr_buffer_size
|
|
|
|
function rocsparse_dprune_dense2csr_buffer_size(handle, m, n, A, lda, threshold, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, buffer_size) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dprune_dense2csr_buffer_size
|
|
|
|
! rocsparse_prune_dense2csr_nnz
|
|
function rocsparse_sprune_dense2csr_nnz(handle, m, n, A, lda, threshold, descr, csr_row_ptr, &
|
|
nnz_total_dev_host_ptr, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_dense2csr_nnz
|
|
|
|
function rocsparse_dprune_dense2csr_nnz(handle, m, n, A, lda, threshold, descr, csr_row_ptr, &
|
|
nnz_total_dev_host_ptr, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_dense2csr_nnz
|
|
|
|
! rocsparse_prune_dense2csr
|
|
function rocsparse_sprune_dense2csr(handle, m, n, A, lda, threshold, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_dense2csr
|
|
|
|
function rocsparse_dprune_dense2csr(handle, m, n, A, lda, threshold, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_dense2csr
|
|
|
|
! rocsparse_prune_dense2csr_by_percentage_buffer_size
|
|
function rocsparse_sprune_dense2csr_by_percentage_buffer_size(handle, m, n, A, lda, percentage, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr_by_percentage_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sprune_dense2csr_by_percentage_buffer_size
|
|
|
|
function rocsparse_dprune_dense2csr_by_percentage_buffer_size(handle, m, n, A, lda, percentage, descr, &
|
|
csr_val, csr_row_ptr, csr_col_ind, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr_by_percentage_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_double), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), intent(in), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), intent(in), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dprune_dense2csr_by_percentage_buffer_size
|
|
|
|
! rocsparse_prune_dense2csr_nnz_by_percentage
|
|
function rocsparse_sprune_dense2csr_nnz_by_percentage(handle, m, n, A, lda, percentage, descr, csr_row_ptr, &
|
|
nnz_total_dev_host_ptr, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr_nnz_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_nnz_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_dense2csr_nnz_by_percentage
|
|
|
|
function rocsparse_dprune_dense2csr_nnz_by_percentage(handle, m, n, A, lda, percentage, descr, csr_row_ptr, &
|
|
nnz_total_dev_host_ptr, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr_nnz_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_nnz_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_double), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_row_ptr
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_dense2csr_nnz_by_percentage
|
|
|
|
! rocsparse_prune_dense2csr_by_percentage
|
|
function rocsparse_sprune_dense2csr_by_percentage(handle, m, n, A, lda, percentage, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_dense2csr_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_dense2csr_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_dense2csr_by_percentage
|
|
|
|
function rocsparse_dprune_dense2csr_by_percentage(handle, m, n, A, lda, percentage, descr, csr_val, csr_row_ptr, &
|
|
csr_col_ind, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_dense2csr_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_dense2csr_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
type(c_ptr), intent(in), value :: A
|
|
integer(c_int), value :: lda
|
|
real(c_double), value :: percentage
|
|
type(c_ptr), intent(in), value :: descr
|
|
type(c_ptr), value :: csr_val
|
|
type(c_ptr), intent(in), value :: csr_row_ptr
|
|
type(c_ptr), value :: csr_col_ind
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_dense2csr_by_percentage
|
|
|
|
|
|
! rocsparse_prune_csr2csr_buffer_size
|
|
function rocsparse_sprune_csr2csr_buffer_size(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, threshold, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), intent(in), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), intent(in), value :: csr_col_ind_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sprune_csr2csr_buffer_size
|
|
|
|
function rocsparse_dprune_csr2csr_buffer_size(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, threshold, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, buffer_size) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), intent(in), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), intent(in), value :: csr_col_ind_C
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dprune_csr2csr_buffer_size
|
|
|
|
! rocsparse_prune_csr2csr_nnz
|
|
function rocsparse_sprune_csr2csr_nnz(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, threshold, csr_descr_C, csr_row_ptr_C, nnz_total_dev_host_ptr, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_csr2csr_nnz
|
|
|
|
function rocsparse_dprune_csr2csr_nnz(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, threshold, csr_descr_C, csr_row_ptr_C, nnz_total_dev_host_ptr, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr_nnz')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_csr2csr_nnz
|
|
|
|
! rocsparse_prune_csr2csr
|
|
function rocsparse_sprune_csr2csr(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, &
|
|
threshold, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_csr2csr
|
|
|
|
function rocsparse_dprune_csr2csr(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, &
|
|
threshold, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
type(c_ptr), intent(in), value :: threshold
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_csr2csr
|
|
|
|
|
|
! rocsparse_prune_csr2csr_by_percentage_buffer_size
|
|
function rocsparse_sprune_csr2csr_by_percentage_buffer_size(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, percentage, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr_by_percentage_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), intent(in), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), intent(in), value :: csr_col_ind_C
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_sprune_csr2csr_by_percentage_buffer_size
|
|
|
|
function rocsparse_dprune_csr2csr_by_percentage_buffer_size(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, percentage, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info, buffer_size) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr_by_percentage_buffer_size')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage_buffer_size
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_double), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), intent(in), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), intent(in), value :: csr_col_ind_C
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: buffer_size
|
|
end function rocsparse_dprune_csr2csr_by_percentage_buffer_size
|
|
|
|
! rocsparse_prune_csr2csr_nnz_by_percentage
|
|
function rocsparse_sprune_csr2csr_nnz_by_percentage(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, percentage, csr_descr_C, csr_row_ptr_C, nnz_total_dev_host_ptr, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr_nnz_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_nnz_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_csr2csr_nnz_by_percentage
|
|
|
|
function rocsparse_dprune_csr2csr_nnz_by_percentage(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, &
|
|
csr_col_ind_A, percentage, csr_descr_C, csr_row_ptr_C, nnz_total_dev_host_ptr, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr_nnz_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_nnz_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_double), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: nnz_total_dev_host_ptr
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_csr2csr_nnz_by_percentage
|
|
|
|
! rocsparse_prune_csr2csr_by_percentage
|
|
function rocsparse_sprune_csr2csr_by_percentage(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, &
|
|
percentage, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_sprune_csr2csr_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_sprune_csr2csr_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_sprune_csr2csr_by_percentage
|
|
|
|
function rocsparse_dprune_csr2csr_by_percentage(handle, m, n, nnz_A, csr_descr_A, csr_val_A, csr_row_ptr_A, csr_col_ind_A, &
|
|
percentage, csr_descr_C, csr_val_C, csr_row_ptr_C, csr_col_ind_C, info, temp_buffer) &
|
|
bind(c, name = 'rocsparse_dprune_csr2csr_by_percentage')
|
|
use rocsparse_enums
|
|
use iso_c_binding
|
|
implicit none
|
|
integer(kind(rocsparse_status_success)) :: rocsparse_dprune_csr2csr_by_percentage
|
|
type(c_ptr), value :: handle
|
|
integer(c_int), value :: m
|
|
integer(c_int), value :: n
|
|
integer(c_int), value :: nnz_A
|
|
type(c_ptr), intent(in), value :: csr_descr_A
|
|
type(c_ptr), intent(in), value :: csr_val_A
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_A
|
|
type(c_ptr), intent(in), value :: csr_col_ind_A
|
|
real(c_float), value :: percentage
|
|
type(c_ptr), intent(in), value :: csr_descr_C
|
|
type(c_ptr), value :: csr_val_C
|
|
type(c_ptr), intent(in), value :: csr_row_ptr_C
|
|
type(c_ptr), value :: csr_col_ind_C
|
|
type(c_ptr), value :: info
|
|
type(c_ptr), value :: temp_buffer
|
|
end function rocsparse_dprune_csr2csr_by_percentage
|
|
|
|
end interface
|
|
|
|
end module rocsparse
|